diff mbox series

[2/8] btrfs: extent-tree: Open-code process_func in __btrfs_mod_ref

Message ID 20181206065903.11343-3-wqu@suse.com (mailing list archive)
State New, archived
Headers show
Series btrfs: Refactor delayed ref parameter list | expand

Commit Message

Qu Wenruo Dec. 6, 2018, 6:58 a.m. UTC
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(-)

Comments

Nikolay Borisov Dec. 7, 2018, 5:39 p.m. UTC | #1
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 mbox series

Patch

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;
 		}