Commit e4f6c6be authored by David Sterba's avatar David Sterba

btrfs: use raid_attr table in calc_stripe_length for nparity

The table is already used for ncopies, replace open coding of stripes
with the raid_attr value.
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 0e56315c
...@@ -6480,19 +6480,14 @@ static u64 calc_stripe_length(u64 type, u64 chunk_len, int num_stripes) ...@@ -6480,19 +6480,14 @@ static u64 calc_stripe_length(u64 type, u64 chunk_len, int num_stripes)
{ {
int index = btrfs_bg_flags_to_raid_index(type); int index = btrfs_bg_flags_to_raid_index(type);
int ncopies = btrfs_raid_array[index].ncopies; int ncopies = btrfs_raid_array[index].ncopies;
const int nparity = btrfs_raid_array[index].nparity;
int data_stripes; int data_stripes;
switch (type & BTRFS_BLOCK_GROUP_PROFILE_MASK) { if (nparity)
case BTRFS_BLOCK_GROUP_RAID5: data_stripes = num_stripes - nparity;
data_stripes = num_stripes - 1; else
break;
case BTRFS_BLOCK_GROUP_RAID6:
data_stripes = num_stripes - 2;
break;
default:
data_stripes = num_stripes / ncopies; data_stripes = num_stripes / ncopies;
break;
}
return div_u64(chunk_len, data_stripes); return div_u64(chunk_len, data_stripes);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment