]> git.hungrycats.org Git - linux/commitdiff
btrfs: let can_allocate_chunk return error
authorNaohiro Aota <naohiro.aota@wdc.com>
Fri, 8 Jul 2022 23:18:43 +0000 (08:18 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:42:26 +0000 (14:42 +0200)
[ Upstream commit bb9950d3df7169a673c594d38fb74e241ed4fb2a ]

For the later patch, convert the return type from bool to int and return
errors. No functional changes.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/btrfs/extent-tree.c

index f45ecd939a2cbb3264c988362833556b19e24781..8bdcbc0c6d60533784571aca9b2e9401f86a386c 100644 (file)
@@ -3985,12 +3985,12 @@ static void found_extent(struct find_free_extent_ctl *ffe_ctl,
        }
 }
 
-static bool can_allocate_chunk(struct btrfs_fs_info *fs_info,
-                              struct find_free_extent_ctl *ffe_ctl)
+static int can_allocate_chunk(struct btrfs_fs_info *fs_info,
+                             struct find_free_extent_ctl *ffe_ctl)
 {
        switch (ffe_ctl->policy) {
        case BTRFS_EXTENT_ALLOC_CLUSTERED:
-               return true;
+               return 0;
        case BTRFS_EXTENT_ALLOC_ZONED:
                /*
                 * If we have enough free space left in an already
@@ -4000,8 +4000,8 @@ static bool can_allocate_chunk(struct btrfs_fs_info *fs_info,
                 */
                if (ffe_ctl->max_extent_size >= ffe_ctl->min_alloc_size &&
                    !btrfs_can_activate_zone(fs_info->fs_devices, ffe_ctl->flags))
-                       return false;
-               return true;
+                       return -ENOSPC;
+               return 0;
        default:
                BUG();
        }
@@ -4083,8 +4083,9 @@ static int find_free_extent_update_loop(struct btrfs_fs_info *fs_info,
                        int exist = 0;
 
                        /*Check if allocation policy allows to create a new chunk */
-                       if (!can_allocate_chunk(fs_info, ffe_ctl))
-                               return -ENOSPC;
+                       ret = can_allocate_chunk(fs_info, ffe_ctl);
+                       if (ret)
+                               return ret;
 
                        trans = current->journal_info;
                        if (trans)