From 815c8a7e0b11b69331211b59b880ba50f3ed2b5e Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Tue, 10 May 2011 13:09:37 +1000 Subject: [PATCH] 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 --- Grow.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Grow.c b/Grow.c index 5840a2c..1e1e9f8 100644 --- a/Grow.c +++ b/Grow.c @@ -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;