Btrfs: stop passing a trans handle all around the reservation code
The only thing that we need to have a trans handle for is in reserve_metadata_bytes and thats to know how much flushing we can do. So instead of passing it around, just check current->journal_info for a trans_handle so we know if we can commit a transaction to try and free up space or not. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com>
This commit is contained in:
@@ -2041,8 +2041,8 @@ static noinline_for_stack int merge_reloc_root(struct reloc_control *rc,
|
||||
BUG_ON(IS_ERR(trans));
|
||||
trans->block_rsv = rc->block_rsv;
|
||||
|
||||
ret = btrfs_block_rsv_check(trans, root, rc->block_rsv,
|
||||
min_reserved, 0, 0);
|
||||
ret = btrfs_block_rsv_check(root, rc->block_rsv, min_reserved,
|
||||
0, 0);
|
||||
if (ret) {
|
||||
BUG_ON(ret != -EAGAIN);
|
||||
ret = btrfs_commit_transaction(trans, root);
|
||||
@@ -2152,8 +2152,7 @@ int prepare_to_merge(struct reloc_control *rc, int err)
|
||||
again:
|
||||
if (!err) {
|
||||
num_bytes = rc->merging_rsv_size;
|
||||
ret = btrfs_block_rsv_add(NULL, root, rc->block_rsv,
|
||||
num_bytes);
|
||||
ret = btrfs_block_rsv_add(root, rc->block_rsv, num_bytes);
|
||||
if (ret)
|
||||
err = ret;
|
||||
}
|
||||
@@ -2427,7 +2426,7 @@ static int reserve_metadata_space(struct btrfs_trans_handle *trans,
|
||||
num_bytes = calcu_metadata_size(rc, node, 1) * 2;
|
||||
|
||||
trans->block_rsv = rc->block_rsv;
|
||||
ret = btrfs_block_rsv_add(trans, root, rc->block_rsv, num_bytes);
|
||||
ret = btrfs_block_rsv_add(root, rc->block_rsv, num_bytes);
|
||||
if (ret) {
|
||||
if (ret == -EAGAIN)
|
||||
rc->commit_transaction = 1;
|
||||
@@ -3645,7 +3644,7 @@ int prepare_to_relocate(struct reloc_control *rc)
|
||||
* btrfs_init_reloc_root will use them when there
|
||||
* is no reservation in transaction handle.
|
||||
*/
|
||||
ret = btrfs_block_rsv_add(NULL, rc->extent_root, rc->block_rsv,
|
||||
ret = btrfs_block_rsv_add(rc->extent_root, rc->block_rsv,
|
||||
rc->extent_root->nodesize * 256);
|
||||
if (ret)
|
||||
return ret;
|
||||
@@ -3774,8 +3773,8 @@ restart:
|
||||
}
|
||||
}
|
||||
|
||||
ret = btrfs_block_rsv_check(trans, rc->extent_root,
|
||||
rc->block_rsv, 0, 5, 0);
|
||||
ret = btrfs_block_rsv_check(rc->extent_root, rc->block_rsv, 0,
|
||||
5, 0);
|
||||
if (ret < 0) {
|
||||
if (ret != -EAGAIN) {
|
||||
err = ret;
|
||||
|
Reference in New Issue
Block a user