btrfs: merge calculations for simple striped profiles in btrfs_rmap_block
authorDavid Sterba <dsterba@suse.com>
Thu, 23 Jun 2022 14:57:02 +0000 (16:57 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 Jul 2022 15:45:38 +0000 (17:45 +0200)
Use the same expression for stripe_nr for RAID0 (map->sub_stripes is 1)
and RAID10 (map->sub_stripes is 2), with equivalent results.

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/block-group.c

index 13358fb..e930749 100644 (file)
@@ -1816,11 +1816,10 @@ int btrfs_rmap_block(struct btrfs_fs_info *fs_info, u64 chunk_start,
                stripe_nr = physical - map->stripes[i].physical;
                stripe_nr = div64_u64_rem(stripe_nr, map->stripe_len, &offset);
 
-               if (map->type & BTRFS_BLOCK_GROUP_RAID10) {
+               if (map->type & (BTRFS_BLOCK_GROUP_RAID0 |
+                                BTRFS_BLOCK_GROUP_RAID10)) {
                        stripe_nr = stripe_nr * map->num_stripes + i;
                        stripe_nr = div_u64(stripe_nr, map->sub_stripes);
-               } else if (map->type & BTRFS_BLOCK_GROUP_RAID0) {
-                       stripe_nr = stripe_nr * map->num_stripes + i;
                }
                /*
                 * The remaining case would be for RAID56, multiply by