btrfs: let can_allocate_chunk return error
authorNaohiro Aota <naohiro.aota@wdc.com>
Fri, 8 Jul 2022 23:18:43 +0000 (08:18 +0900)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 Jul 2022 15:45:41 +0000 (17:45 +0200)
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>
fs/btrfs/extent-tree.c

index a1696e3ffb1e38277318fa3f3e867d2f1e00084d..166ce2c539aa52496ec290ff41dc4b7b48a01874 100644 (file)
@@ -3965,12 +3965,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
@@ -3980,8 +3980,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();
        }
@@ -4063,8 +4063,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)