]> git.hungrycats.org Git - linux/commitdiff
MD: not clear ->safemode for external metadata array
authorShaohua Li <shli@fb.com>
Sat, 12 Aug 2017 03:34:45 +0000 (20:34 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Aug 2017 00:15:02 +0000 (17:15 -0700)
commit afc1f55ca44e257f69da8f43e0714a76686ae8d1 upstream.

->safemode should be triggered by mdadm for external metadaa array, otherwise
array's state confuses mdadm.

Fixes: 33182d15c6bf(md: always clear ->safemode when md_check_recovery gets the mddev lock.)
Cc: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/md.c

index 0e5afb366d4679c34e2a6635a5f38cacb75568c8..caca5d689cdc8372c58a8e8e0e64740e455c848e 100644 (file)
@@ -8639,7 +8639,7 @@ void md_check_recovery(struct mddev *mddev)
        if (mddev_trylock(mddev)) {
                int spares = 0;
 
-               if (mddev->safemode == 1)
+               if (!mddev->external && mddev->safemode == 1)
                        mddev->safemode = 0;
 
                if (mddev->ro) {