simplify calculating array_blocks
no point calling info_to_blocks_per_member when it just returns size*2 for level==1 calc_array_size can be used for all levels Signed-off-by: Anna Czarnowska <anna.czarnowska@intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
97f81ee263
commit
e03640bda5
|
@ -4623,10 +4623,7 @@ static int init_super_imsm_volume(struct supertype *st, mdu_array_info_t *info,
|
|||
}
|
||||
|
||||
strncpy((char *) dev->volume, name, MAX_RAID_SERIAL_LEN);
|
||||
if (info->level == 1)
|
||||
array_blocks = info_to_blocks_per_member(info, size);
|
||||
else
|
||||
array_blocks = calc_array_size(info->level, info->raid_disks,
|
||||
array_blocks = calc_array_size(info->level, info->raid_disks,
|
||||
info->layout, info->chunk_size,
|
||||
size * 2);
|
||||
/* round array size down to closest MB */
|
||||
|
|
2
util.c
2
util.c
|
@ -711,6 +711,8 @@ void print_r10_layout(int layout)
|
|||
unsigned long long calc_array_size(int level, int raid_disks, int layout,
|
||||
int chunksize, unsigned long long devsize)
|
||||
{
|
||||
if (level == 1)
|
||||
return devsize;
|
||||
devsize &= ~(unsigned long long)((chunksize>>9)-1);
|
||||
return get_data_disks(level, layout, raid_disks) * devsize;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue