Grow: don't try to use 'raid_disks' value for a container.
The 'raid_disks' for a container is zero, so subtracting it from the given raid_disks to get delta_disks doesn't make sense. Rather set delta_disks to UnSet and set raid_disks to the requested number of disks. This then gets passed to reshape_super() which can use it as required. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
817ed7d6d6
commit
eff4954d9a
5
Grow.c
5
Grow.c
|
@ -1506,7 +1506,10 @@ int Grow_reshape(char *devname, int fd, int quiet, char *backup_file,
|
|||
info.component_size = size*2;
|
||||
info.new_level = level;
|
||||
info.new_chunk = chunksize * 1024;
|
||||
if (raid_disks)
|
||||
if (info.array.level == LEVEL_CONTAINER) {
|
||||
info.delta_disks = UnSet;
|
||||
info.array.raid_disks = raid_disks;
|
||||
} else if (raid_disks)
|
||||
info.delta_disks = raid_disks - info.array.raid_disks;
|
||||
else
|
||||
info.delta_disks = UnSet;
|
||||
|
|
Loading…
Reference in New Issue