Grow.c: Block any level migration with chunk size change
Mixing level and chunk changes in one grow operation is not supported. Mdadm performs level migration correctly and ignores new chunk, but after migration it tries to write this chunk to sysfs properties. This is dangerous and can cause unexpected behaviours. Block it before level migration starts. Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@intel.com> Signed-off-by: Jes Sorensen <jsorensen@fb.com>
This commit is contained in:
parent
31b6f0cdc1
commit
a3b831c9e1
5
Grow.c
5
Grow.c
|
@ -1794,6 +1794,11 @@ int Grow_reshape(char *devname, int fd,
|
|||
devname);
|
||||
return 1;
|
||||
}
|
||||
if (s->level != UnSet && s->chunk) {
|
||||
pr_err("Cannot change array level in the same operation as changing chunk size.\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (data_offset != INVALID_SECTORS && array.level != 10 &&
|
||||
(array.level < 4 || array.level > 6)) {
|
||||
pr_err("--grow --data-offset not yet supported\n");
|
||||
|
|
Loading…
Reference in New Issue