btrfs: skip LOOP_NO_EMPTY_SIZE if not clustered allocation

LOOP_NO_EMPTY_SIZE is solely dedicated for clustered allocation. So, we
can skip this stage and give up the allocation.

Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Naohiro Aota 2020-02-25 12:56:25 +09:00 committed by David Sterba
parent c70e2139dc
commit 45d8e033b2

View File

@ -3835,6 +3835,9 @@ static int find_free_extent_update_loop(struct btrfs_fs_info *fs_info,
} }
if (ffe_ctl->loop == LOOP_NO_EMPTY_SIZE) { 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 * Don't loop again if we already have no empty_size and
* no empty_cluster. * no empty_cluster.