]> rtime.felk.cvut.cz Git - lisovros/linux_canprio.git/commitdiff
md: Fix regression with raid1 arrays without persistent metadata.
authorNeilBrown <neilb@suse.de>
Thu, 28 Oct 2010 06:30:20 +0000 (17:30 +1100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 9 Dec 2010 21:32:39 +0000 (13:32 -0800)
commit d97a41dc9c44f5829b7af7aa69fda10fd82b6b4e upstream.

A RAID1 which has no persistent metadata, whether internal or
external, will hang on the first write.
This is caused by commit  070dc6dd7103b6b3f7e4d46e754354a5c15f366e
In that case, MD_CHANGE_PENDING never gets cleared.

So during md_update_sb, is neither persistent or external,
clear MD_CHANGE_PENDING.

This is suitable for 2.6.36-stable.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/md/md.c

index f20d13e717d55e0a04de747f62384d2ce4b0b310..8871092c46d736fef72806a2314060e1c8fcf8bb 100644 (file)
@@ -2172,6 +2172,8 @@ repeat:
        if (!mddev->persistent) {
                clear_bit(MD_CHANGE_CLEAN, &mddev->flags);
                clear_bit(MD_CHANGE_DEVS, &mddev->flags);
+               if (!mddev->external)
+                       clear_bit(MD_CHANGE_PENDING, &mddev->flags);
                wake_up(&mddev->sb_wait);
                return;
        }