btrfs: use mask for all RAID1* profiles in btrfs_calc_avail_data_space
authorDavid Sterba <dsterba@suse.com>
Thu, 23 Jun 2022 14:57:00 +0000 (16:57 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 Jul 2022 15:45:38 +0000 (17:45 +0200)
There's a sequence of hard coded values for RAID1 profiles that are
already stored in the raid_attr table that should be used instead.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/super.c

index 41652dcd16f436eeb2142cb1fc89ee17c37c8634..4c7089b1681b32c666cfc5b6ff6253ed902372df 100644 (file)
@@ -2243,12 +2243,8 @@ static inline int btrfs_calc_avail_data_space(struct btrfs_fs_info *fs_info,
 
        if (type & BTRFS_BLOCK_GROUP_RAID0)
                num_stripes = nr_devices;
-       else if (type & BTRFS_BLOCK_GROUP_RAID1)
-               num_stripes = 2;
-       else if (type & BTRFS_BLOCK_GROUP_RAID1C3)
-               num_stripes = 3;
-       else if (type & BTRFS_BLOCK_GROUP_RAID1C4)
-               num_stripes = 4;
+       else if (type & BTRFS_BLOCK_GROUP_RAID1_MASK)
+               num_stripes = rattr->ncopies;
        else if (type & BTRFS_BLOCK_GROUP_RAID10)
                num_stripes = 4;