Message ID | 20181206065903.11343-3-wqu@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: Refactor delayed ref parameter list | expand |
On 6.12.18 г. 8:58 ч., Qu Wenruo wrote: > The process_func is never a function hook used anywhere else. > > 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. > > Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: Nikolay Borisov <nborisov@suse.com> > --- > fs/btrfs/extent-tree.c | 33 ++++++++++++++++++--------------- > 1 file changed, 18 insertions(+), 15 deletions(-) > > diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c > index ea2c3d5220f0..ea68d288d761 100644 > --- a/fs/btrfs/extent-tree.c > +++ b/fs/btrfs/extent-tree.c > @@ -3220,10 +3220,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, bool); > - > > if (btrfs_is_testing(fs_info)) > return 0; > @@ -3235,11 +3231,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 > @@ -3261,17 +3252,29 @@ 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, for_reloc); > + if (inc) > + ret = btrfs_inc_extent_ref(trans, root, bytenr, > + num_bytes, parent, ref_root, > + key.objectid, key.offset, > + for_reloc); > + else > + ret = btrfs_free_extent(trans, root, bytenr, > + num_bytes, parent, ref_root, > + key.objectid, key.offset, > + for_reloc); > 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, > - for_reloc); > + if (inc) > + ret = btrfs_inc_extent_ref(trans, root, bytenr, > + num_bytes, parent, ref_root, > + level - 1, 0, for_reloc); > + else > + ret = btrfs_free_extent(trans, root, bytenr, > + num_bytes, parent, ref_root, > + level - 1, 0, for_reloc); > if (ret) > goto fail; > } >
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index ea2c3d5220f0..ea68d288d761 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -3220,10 +3220,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, bool); - if (btrfs_is_testing(fs_info)) return 0; @@ -3235,11 +3231,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 @@ -3261,17 +3252,29 @@ 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, for_reloc); + if (inc) + ret = btrfs_inc_extent_ref(trans, root, bytenr, + num_bytes, parent, ref_root, + key.objectid, key.offset, + for_reloc); + else + ret = btrfs_free_extent(trans, root, bytenr, + num_bytes, parent, ref_root, + key.objectid, key.offset, + for_reloc); 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, - for_reloc); + if (inc) + ret = btrfs_inc_extent_ref(trans, root, bytenr, + num_bytes, parent, ref_root, + level - 1, 0, for_reloc); + else + ret = btrfs_free_extent(trans, root, bytenr, + num_bytes, parent, ref_root, + level - 1, 0, for_reloc); if (ret) goto fail; }
The process_func is never a function hook used anywhere else. 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. Signed-off-by: Qu Wenruo <wqu@suse.com> --- fs/btrfs/extent-tree.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-)