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:
NeilBrown 2011-05-10 13:09:37 +10:00
parent 621ea11b58
commit 815c8a7e0b
1 changed files with 6 additions and 0 deletions

6
Grow.c
View File

@ -521,9 +521,15 @@ static int freeze(struct supertype *st)
else {
struct mdinfo *sra = sysfs_read(-1, st->devnum, GET_VERSION);
int err;
char buf[20];
if (!sra)
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);
sysfs_free(sra);
return err;