btrfs: extent-tree: Open-code process_func in __btrfs_mod_ref
The process_func function pointer is local to __btrfs_mod_ref() and points to either btrfs_inc_extent_ref() or btrfs_free_extent(). Open code it to make later delayed ref refactor easier, so we can refactor btrfs_inc_extent_ref() and btrfs_free_extent() in different patches. Reviewed-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
b28b1f0ce4
commit
dd28b6a5aa
|
@ -3157,10 +3157,6 @@ static int __btrfs_mod_ref(struct btrfs_trans_handle *trans,
|
|||
int i;
|
||||
int level;
|
||||
int ret = 0;
|
||||
int (*process_func)(struct btrfs_trans_handle *,
|
||||
struct btrfs_root *,
|
||||
u64, u64, u64, u64, u64, u64);
|
||||
|
||||
|
||||
if (btrfs_is_testing(fs_info))
|
||||
return 0;
|
||||
|
@ -3172,11 +3168,6 @@ static int __btrfs_mod_ref(struct btrfs_trans_handle *trans,
|
|||
if (!test_bit(BTRFS_ROOT_REF_COWS, &root->state) && level == 0)
|
||||
return 0;
|
||||
|
||||
if (inc)
|
||||
process_func = btrfs_inc_extent_ref;
|
||||
else
|
||||
process_func = btrfs_free_extent;
|
||||
|
||||
if (full_backref)
|
||||
parent = buf->start;
|
||||
else
|
||||
|
@ -3198,16 +3189,27 @@ static int __btrfs_mod_ref(struct btrfs_trans_handle *trans,
|
|||
|
||||
num_bytes = btrfs_file_extent_disk_num_bytes(buf, fi);
|
||||
key.offset -= btrfs_file_extent_offset(buf, fi);
|
||||
ret = process_func(trans, root, bytenr, num_bytes,
|
||||
parent, ref_root, key.objectid,
|
||||
key.offset);
|
||||
if (inc)
|
||||
ret = btrfs_inc_extent_ref(trans, root, bytenr,
|
||||
num_bytes, parent, ref_root,
|
||||
key.objectid, key.offset);
|
||||
else
|
||||
ret = btrfs_free_extent(trans, root, bytenr,
|
||||
num_bytes, parent, ref_root,
|
||||
key.objectid, key.offset);
|
||||
if (ret)
|
||||
goto fail;
|
||||
} else {
|
||||
bytenr = btrfs_node_blockptr(buf, i);
|
||||
num_bytes = fs_info->nodesize;
|
||||
ret = process_func(trans, root, bytenr, num_bytes,
|
||||
parent, ref_root, level - 1, 0);
|
||||
if (inc)
|
||||
ret = btrfs_inc_extent_ref(trans, root, bytenr,
|
||||
num_bytes, parent, ref_root,
|
||||
level - 1, 0);
|
||||
else
|
||||
ret = btrfs_free_extent(trans, root, bytenr,
|
||||
num_bytes, parent, ref_root,
|
||||
level - 1, 0);
|
||||
if (ret)
|
||||
goto fail;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue