diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index cd2f5220577fbb466c3926dd12222e899c94c5f4..686d23727662bcb4e468665314aa488328e63e1b 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -4681,12 +4681,14 @@ static int do_chunk_alloc(struct btrfs_trans_handle *trans, trans->allocating_chunk = false; spin_lock(&space_info->lock); - if (ret < 0 && ret != -ENOSPC) - goto out; - if (ret) - space_info->full = 1; - else + if (ret < 0) { + if (ret == -ENOSPC) + space_info->full = 1; + else + goto out; + } else { ret = 1; + } space_info->force_alloc = CHUNK_ALLOC_NO_FORCE; out: