]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
md: Don't try to set an array to 'read-auto' if it is already in that state.
authorNeilBrown <neilb@suse.de>
Mon, 13 Oct 2008 00:55:12 +0000 (11:55 +1100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 12 Feb 2009 17:31:12 +0000 (09:31 -0800)
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>
drivers/md/md.c

index 4d7cfc2dd861ebe178a78e67ba4ec76dd2e6d7a6..a0401bd9184b8f21f953098dfa5fdf3f1d0bfd6a 100644 (file)
@@ -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;