Re: [PATCH 28/35] btrfs: call btrfs_create_pending_block_groups unconditionally

Nikolay Borisov
2018-08-31T11:49:59Z

On 30.08.2018 20:42, Josef Bacik wrote:
> The first thing we do is loop through the list, this
>
> if (!list_empty())
> btrfs_create_pending_block_groups();
>
> thing is just wasted space.
>
> Signed-off-by: Josef Bacik <josef@toxicpanda.com>

Makes sense, although it would have been ideal if this patch followed
directly your " btrfs: make sure we create all new bgs" one.

Anyway:

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
> ---
> fs/btrfs/extent-tree.c | 3 +--
> fs/btrfs/transaction.c | 6 ++----
> 2 files changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> index 031d2b11ddee..90f267f4dd0f 100644
> --- a/fs/btrfs/extent-tree.c
> +++ b/fs/btrfs/extent-tree.c
> @@ -2970,8 +2970,7 @@ int btrfs_run_delayed_refs(struct btrfs_trans_handle *trans,
> }
>
> if (run_all) {
> - if (!list_empty(&trans->new_bgs))
> - btrfs_create_pending_block_groups(trans);
> + btrfs_create_pending_block_groups(trans);
>
> spin_lock(&delayed_refs->lock);
> node = rb_first(&delayed_refs->href_root);
> diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
> index 2bb19e2ded5e..89d14f135837 100644
> --- a/fs/btrfs/transaction.c
> +++ b/fs/btrfs/transaction.c
> @@ -839,8 +839,7 @@ static int __btrfs_end_transaction(struct btrfs_trans_handle *trans,
> btrfs_trans_release_metadata(trans);
> trans->block_rsv = NULL;
>
> - if (!list_empty(&trans->new_bgs))
> - btrfs_create_pending_block_groups(trans);
> + btrfs_create_pending_block_groups(trans);
>
> btrfs_trans_release_chunk_metadata(trans);
>
> @@ -1927,8 +1926,7 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans)
> cur_trans->delayed_refs.flushing = 1;
> smp_wmb();
>
> - if (!list_empty(&trans->new_bgs))
> - btrfs_create_pending_block_groups(trans);
> + btrfs_create_pending_block_groups(trans);
>
> if (!test_bit(BTRFS_TRANS_DIRTY_BG_RUN, &cur_trans->flags)) {
> int run_it = 0;
>