summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2008-10-13 11:55:12 +1100
committerGreg Kroah-Hartman <gregkh@suse.de>2009-02-12 09:31:12 -0800
commit2dcee68b26a8c19dc08e594604db4ac129d495ed (patch)
tree2b612a76125bd539bc86d21f9cb00d50586badef /drivers
parent3a90273ed724622c82787316c772e5d75c69f5cb (diff)
md: Don't try to set an array to 'read-auto' if it is already in that state.
commit 80268ee9270ebe4847365a7426de91d179e870d0 upstream. 'read-auto' is a variant of 'readonly' which will switch to writable on the first write attempt. Calling do_md_stop to set the array readonly when it is already readonly returns an error. So make sure not to do that. Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/md/md.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 4d7cfc2dd861..a0401bd9184b 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -2742,9 +2742,9 @@ array_state_store(mddev_t *mddev, const char *buf, size_t len)
break;
case read_auto:
if (mddev->pers) {
- if (mddev->ro != 1)
+ if (mddev->ro == 0)
err = do_md_stop(mddev, 1, 0);
- else
+ else if (mddev->ro == 1)
err = restart_array(mddev);
if (err == 0) {
mddev->ro = 2;