From: NeilBrown Date: Thu, 28 Oct 2010 06:30:20 +0000 (+1100) Subject: md: Fix regression with raid1 arrays without persistent metadata. X-Git-Tag: v2.6.36.2~159 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3743e8ce777f4f1cfa1797dc1d96a4e94b361a11;p=thirdparty%2Fkernel%2Fstable.git md: Fix regression with raid1 arrays without persistent metadata. 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 Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/md/md.c b/drivers/md/md.c index f20d13e717d55..8871092c46d73 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -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; }