mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 18:39:59 +00:00
btrfs: merge calculations for simple striped profiles in btrfs_rmap_block
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>
This commit is contained in:
parent
d09cb9e188
commit
ac0677348f
1 changed files with 2 additions and 3 deletions
|
@ -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 = physical - map->stripes[i].physical;
|
||||||
stripe_nr = div64_u64_rem(stripe_nr, map->stripe_len, &offset);
|
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 = stripe_nr * map->num_stripes + i;
|
||||||
stripe_nr = div_u64(stripe_nr, map->sub_stripes);
|
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
|
* The remaining case would be for RAID56, multiply by
|
||||||
|
|
Loading…
Reference in a new issue