linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] btrfs: Cleanup btrfs_destroy_delayed_refs()
@ 2019-04-16  5:57 Qu Wenruo
  2019-04-16  6:13 ` Nikolay Borisov
  2019-04-18 15:49 ` David Sterba
  0 siblings, 2 replies; 3+ messages in thread
From: Qu Wenruo @ 2019-04-16  5:57 UTC (permalink / raw)
  To: linux-btrfs

This patches cleans up btrfs_destroy_delayed_refs() by:
- Remove the forward declaration
  The caller comes after the implementation, no need to do forward
  declaration.

- Remove the @fs_info parameter
  @fs_info can be extracted from @trans parameter.

- Make it return void
  Again, no failure pattern.

Signed-off-by: Qu Wenruo <wqu@suse.com>
---
 fs/btrfs/disk-io.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 6fe9197f6ee4..d83298570bdb 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -54,8 +54,6 @@
 static const struct extent_io_ops btree_extent_io_ops;
 static void end_workqueue_fn(struct btrfs_work *work);
 static void btrfs_destroy_ordered_extents(struct btrfs_root *root);
-static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
-				      struct btrfs_fs_info *fs_info);
 static void btrfs_destroy_delalloc_inodes(struct btrfs_root *root);
 static int btrfs_destroy_marked_extents(struct btrfs_fs_info *fs_info,
 					struct extent_io_tree *dirty_pages,
@@ -4224,13 +4222,12 @@ static void btrfs_destroy_all_ordered_extents(struct btrfs_fs_info *fs_info)
 	btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
 }
 
-static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
-				      struct btrfs_fs_info *fs_info)
+static void btrfs_destroy_delayed_refs(struct btrfs_transaction *trans)
 {
+	struct btrfs_fs_info *fs_info = trans->fs_info;
 	struct rb_node *node;
 	struct btrfs_delayed_ref_root *delayed_refs;
 	struct btrfs_delayed_ref_node *ref;
-	int ret = 0;
 
 	delayed_refs = &trans->delayed_refs;
 
@@ -4238,7 +4235,7 @@ static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
 	if (atomic_read(&delayed_refs->num_entries) == 0) {
 		spin_unlock(&delayed_refs->lock);
 		btrfs_info(fs_info, "delayed_refs has NO entry");
-		return ret;
+		return;
 	}
 
 	while ((node = rb_first_cached(&delayed_refs->href_root)) != NULL) {
@@ -4281,8 +4278,6 @@ static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
 	}
 
 	spin_unlock(&delayed_refs->lock);
-
-	return ret;
 }
 
 static void btrfs_destroy_delalloc_inodes(struct btrfs_root *root)
@@ -4488,7 +4483,7 @@ void btrfs_cleanup_one_transaction(struct btrfs_transaction *cur_trans,
 	ASSERT(list_empty(&cur_trans->dirty_bgs));
 	ASSERT(list_empty(&cur_trans->io_bgs));
 
-	btrfs_destroy_delayed_refs(cur_trans, fs_info);
+	btrfs_destroy_delayed_refs(cur_trans);
 
 	cur_trans->state = TRANS_STATE_COMMIT_START;
 	wake_up(&fs_info->transaction_blocked_wait);
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] btrfs: Cleanup btrfs_destroy_delayed_refs()
  2019-04-16  5:57 [PATCH] btrfs: Cleanup btrfs_destroy_delayed_refs() Qu Wenruo
@ 2019-04-16  6:13 ` Nikolay Borisov
  2019-04-18 15:49 ` David Sterba
  1 sibling, 0 replies; 3+ messages in thread
From: Nikolay Borisov @ 2019-04-16  6:13 UTC (permalink / raw)
  To: Qu Wenruo, linux-btrfs



On 16.04.19 г. 8:57 ч., Qu Wenruo wrote:
> This patches cleans up btrfs_destroy_delayed_refs() by:
> - Remove the forward declaration
>   The caller comes after the implementation, no need to do forward
>   declaration.
> 
> - Remove the @fs_info parameter
>   @fs_info can be extracted from @trans parameter.
> 
> - Make it return void
>   Again, no failure pattern.
> 
> Signed-off-by: Qu Wenruo <wqu@suse.com>

Reviewed-by: Nikolay Borisov <nborisov@suse.com>

> ---
>  fs/btrfs/disk-io.c | 13 ++++---------
>  1 file changed, 4 insertions(+), 9 deletions(-)
> 
> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
> index 6fe9197f6ee4..d83298570bdb 100644
> --- a/fs/btrfs/disk-io.c
> +++ b/fs/btrfs/disk-io.c
> @@ -54,8 +54,6 @@
>  static const struct extent_io_ops btree_extent_io_ops;
>  static void end_workqueue_fn(struct btrfs_work *work);
>  static void btrfs_destroy_ordered_extents(struct btrfs_root *root);
> -static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
> -				      struct btrfs_fs_info *fs_info);
>  static void btrfs_destroy_delalloc_inodes(struct btrfs_root *root);
>  static int btrfs_destroy_marked_extents(struct btrfs_fs_info *fs_info,
>  					struct extent_io_tree *dirty_pages,
> @@ -4224,13 +4222,12 @@ static void btrfs_destroy_all_ordered_extents(struct btrfs_fs_info *fs_info)
>  	btrfs_wait_ordered_roots(fs_info, U64_MAX, 0, (u64)-1);
>  }
>  
> -static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
> -				      struct btrfs_fs_info *fs_info)
> +static void btrfs_destroy_delayed_refs(struct btrfs_transaction *trans)
>  {
> +	struct btrfs_fs_info *fs_info = trans->fs_info;
>  	struct rb_node *node;
>  	struct btrfs_delayed_ref_root *delayed_refs;
>  	struct btrfs_delayed_ref_node *ref;
> -	int ret = 0;
>  
>  	delayed_refs = &trans->delayed_refs;
>  
> @@ -4238,7 +4235,7 @@ static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
>  	if (atomic_read(&delayed_refs->num_entries) == 0) {
>  		spin_unlock(&delayed_refs->lock);
>  		btrfs_info(fs_info, "delayed_refs has NO entry");
> -		return ret;
> +		return;
>  	}
>  
>  	while ((node = rb_first_cached(&delayed_refs->href_root)) != NULL) {
> @@ -4281,8 +4278,6 @@ static int btrfs_destroy_delayed_refs(struct btrfs_transaction *trans,
>  	}
>  
>  	spin_unlock(&delayed_refs->lock);
> -
> -	return ret;
>  }
>  
>  static void btrfs_destroy_delalloc_inodes(struct btrfs_root *root)
> @@ -4488,7 +4483,7 @@ void btrfs_cleanup_one_transaction(struct btrfs_transaction *cur_trans,
>  	ASSERT(list_empty(&cur_trans->dirty_bgs));
>  	ASSERT(list_empty(&cur_trans->io_bgs));
>  
> -	btrfs_destroy_delayed_refs(cur_trans, fs_info);
> +	btrfs_destroy_delayed_refs(cur_trans);
>  
>  	cur_trans->state = TRANS_STATE_COMMIT_START;
>  	wake_up(&fs_info->transaction_blocked_wait);
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] btrfs: Cleanup btrfs_destroy_delayed_refs()
  2019-04-16  5:57 [PATCH] btrfs: Cleanup btrfs_destroy_delayed_refs() Qu Wenruo
  2019-04-16  6:13 ` Nikolay Borisov
@ 2019-04-18 15:49 ` David Sterba
  1 sibling, 0 replies; 3+ messages in thread
From: David Sterba @ 2019-04-18 15:49 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

On Tue, Apr 16, 2019 at 01:57:39PM +0800, Qu Wenruo wrote:
> This patches cleans up btrfs_destroy_delayed_refs() by:
> - Remove the forward declaration
>   The caller comes after the implementation, no need to do forward
>   declaration.

Ok.

> - Remove the @fs_info parameter
>   @fs_info can be extracted from @trans parameter.

Ok.

> - Make it return void
>   Again, no failure pattern.

When switching a fuction to return void, please check the whole
callgraph for functions that do not properly handler errors and do
BUG_ON. You won't see errors passed from them so this gives the
impression no error handling is needed in the caller.

This has been sent in the past, so I can point you to the 2nd paragraph in
https://lore.kernel.org/linux-btrfs/20180815124425.GM24025@twin.jikos.cz/

hint: btrfs_pin_extent

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-04-18 15:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-16  5:57 [PATCH] btrfs: Cleanup btrfs_destroy_delayed_refs() Qu Wenruo
2019-04-16  6:13 ` Nikolay Borisov
2019-04-18 15:49 ` David Sterba

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).