diff options
| author | Johannes Thumshirn <johannes.thumshirn@wdc.com> | 2026-03-18 08:17:00 +0100 |
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2026-04-07 18:56:05 +0200 |
| commit | 390aa432f3268c0947f903ab2d60ae2c7cafd11b (patch) | |
| tree | 9c7067d6f0fb473e36aa64e9660b7726d42c9108 | |
| parent | 9a04488473102f08f078653de51bb0b8291087aa (diff) | |
btrfs: decrease indentation of find_free_extent_update_loop
Decrease the indentation of find_free_extent_update_loop(), by inverting
the check if the loop state is smaller than LOOP_NO_EMPTY_SIZE.
This also allows for an early return from find_free_extent_update_loop(),
in case LOOP_NO_EMPTY_SIZE is already set at this point.
While at it change a
if () {
}
else if
else
pattern to all using curly braces and be consistent with the rest of btrfs
code.
Also change 'int exists' to 'bool have_trans' giving it a more meaningful
name and type.
No functional changes intended.
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
| -rw-r--r-- | fs/btrfs/extent-tree.c | 109 |
1 files changed, 55 insertions, 54 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 92ba7867e74b..391fad41c3b6 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -4349,71 +4349,72 @@ static int find_free_extent_update_loop(struct btrfs_fs_info *fs_info, return 1; /* See the comments for btrfs_loop_type for an explanation of the phases. */ - if (ffe_ctl->loop < LOOP_NO_EMPTY_SIZE) { - ffe_ctl->index = 0; - /* - * We want to skip the LOOP_CACHING_WAIT step if we don't have - * any uncached bgs and we've already done a full search - * through. - */ - if (ffe_ctl->loop == LOOP_CACHING_NOWAIT && - (!ffe_ctl->orig_have_caching_bg && full_search)) - ffe_ctl->loop++; + if (ffe_ctl->loop == LOOP_NO_EMPTY_SIZE) + return -ENOSPC; + + ffe_ctl->index = 0; + /* + * We want to skip the LOOP_CACHING_WAIT step if we don't have any + * uncached bgs and we've already done a full search through. + */ + if (ffe_ctl->loop == LOOP_CACHING_NOWAIT && + (!ffe_ctl->orig_have_caching_bg && full_search)) ffe_ctl->loop++; + ffe_ctl->loop++; - if (ffe_ctl->loop == LOOP_ALLOC_CHUNK) { - struct btrfs_trans_handle *trans; - int exist = 0; + if (ffe_ctl->loop == LOOP_ALLOC_CHUNK) { + struct btrfs_trans_handle *trans; + bool have_trans = false; - /* Check if allocation policy allows to create a new chunk */ - ret = can_allocate_chunk(fs_info, ffe_ctl); - if (ret) - return ret; + /* Check if allocation policy allows to create a new chunk. */ + ret = can_allocate_chunk(fs_info, ffe_ctl); + if (ret) + return ret; - trans = current->journal_info; - if (trans) - exist = 1; - else - trans = btrfs_join_transaction(root); + trans = current->journal_info; + if (trans) + have_trans = true; + else + trans = btrfs_join_transaction(root); - if (IS_ERR(trans)) - return PTR_ERR(trans); + if (IS_ERR(trans)) + return PTR_ERR(trans); - ret = btrfs_chunk_alloc(trans, space_info, ffe_ctl->flags, - CHUNK_ALLOC_FORCE_FOR_EXTENT); + ret = btrfs_chunk_alloc(trans, space_info, ffe_ctl->flags, + CHUNK_ALLOC_FORCE_FOR_EXTENT); - /* Do not bail out on ENOSPC since we can do more. */ - if (ret == -ENOSPC) { - ret = 0; - ffe_ctl->loop++; - } - else if (ret < 0) - btrfs_abort_transaction(trans, ret); - else - ret = 0; - if (!exist) - btrfs_end_transaction(trans); - if (ret) - return ret; + /* Do not bail out on ENOSPC since we can do more. */ + if (ret == -ENOSPC) { + ret = 0; + ffe_ctl->loop++; + } else if (ret < 0) { + btrfs_abort_transaction(trans, ret); + } else { + ret = 0; } - if (ffe_ctl->loop == LOOP_NO_EMPTY_SIZE) { - if (ffe_ctl->policy != BTRFS_EXTENT_ALLOC_CLUSTERED) - return -ENOSPC; + if (!have_trans) + btrfs_end_transaction(trans); - /* - * Don't loop again if we already have no empty_size and - * no empty_cluster. - */ - if (ffe_ctl->empty_size == 0 && - ffe_ctl->empty_cluster == 0) - return -ENOSPC; - ffe_ctl->empty_size = 0; - ffe_ctl->empty_cluster = 0; - } - return 1; + if (ret) + return ret; + } + + if (ffe_ctl->loop == LOOP_NO_EMPTY_SIZE) { + if (ffe_ctl->policy != BTRFS_EXTENT_ALLOC_CLUSTERED) + return -ENOSPC; + + /* + * Don't loop again if we already have no empty_size and + * no empty_cluster. + */ + if (ffe_ctl->empty_size == 0 && ffe_ctl->empty_cluster == 0) + return -ENOSPC; + ffe_ctl->empty_size = 0; + ffe_ctl->empty_cluster = 0; } - return -ENOSPC; + + return 1; } static int prepare_allocation_clustered(struct btrfs_fs_info *fs_info, |
