Message ID | 20190416055739.25771-1-wqu@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs: Cleanup btrfs_destroy_delayed_refs() | expand |
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); >
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
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);
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(-)