From: NeilBrown We are counting failed devices twice, once of the device that is failed, and once for the hole that has been left in the array. Remove the former so 'failed' matches 'missing'. Storing these counts in the superblock is a bit silly anyway.... Signed-off-by: Neil Brown Signed-off-by: Andrew Morton --- drivers/md/md.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-) diff -puN drivers/md/md.c~md-fix-the-failed-count-for-version-0-superblocks drivers/md/md.c --- devel/drivers/md/md.c~md-fix-the-failed-count-for-version-0-superblocks 2006-03-16 23:32:26.000000000 -0800 +++ devel-akpm/drivers/md/md.c 2006-03-16 23:32:26.000000000 -0800 @@ -892,10 +892,9 @@ static void super_90_sync(mddev_t *mddev d->raid_disk = rdev2->raid_disk; else d->raid_disk = rdev2->desc_nr; /* compatibility */ - if (test_bit(Faulty, &rdev2->flags)) { + if (test_bit(Faulty, &rdev2->flags)) d->state = (1<flags)) { + else if (test_bit(In_sync, &rdev2->flags)) { d->state = (1<state |= (1<