Grow: allow auto-readonly arrays to be reshaped.
In an array is auto-readonly then a reshape will not start. But auto-readonly is only wanted until something is explicitly done to acknowledge that the array is really wanted. So it is perfectly correct to switch an auto-readonly array to 'clean' if a reshape has been requested. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
621ea11b58
commit
815c8a7e0b
6
Grow.c
6
Grow.c
|
@ -521,9 +521,15 @@ static int freeze(struct supertype *st)
|
||||||
else {
|
else {
|
||||||
struct mdinfo *sra = sysfs_read(-1, st->devnum, GET_VERSION);
|
struct mdinfo *sra = sysfs_read(-1, st->devnum, GET_VERSION);
|
||||||
int err;
|
int err;
|
||||||
|
char buf[20];
|
||||||
|
|
||||||
if (!sra)
|
if (!sra)
|
||||||
return -1;
|
return -1;
|
||||||
|
/* Need to clear any 'read-auto' status */
|
||||||
|
if (sysfs_get_str(sra, NULL, "array_state", buf, 20) > 0 &&
|
||||||
|
strncmp(buf, "read-auto", 9) == 0)
|
||||||
|
sysfs_set_str(sra, NULL, "array_state", "clean");
|
||||||
|
|
||||||
err = sysfs_freeze_array(sra);
|
err = sysfs_freeze_array(sra);
|
||||||
sysfs_free(sra);
|
sysfs_free(sra);
|
||||||
return err;
|
return err;
|
||||||
|
|
Loading…
Reference in New Issue