aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2006-03-27 04:18:03 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-27 11:45:00 -0500
commit1be7892fffb45f6017494a88ff68fe84c6de26b4 (patch)
tree685f3d32dc97becd58262531f0827f8d3bb6e96b
parentc5a10f62c5c496c49db749af103b991873b7e2dc (diff)
[PATCH] md: Fix the 'failed' count for version-0 superblocks
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 <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/md/md.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 875bced88e36..686314f070a5 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -895,10 +895,9 @@ static void super_90_sync(mddev_t *mddev, mdk_rdev_t *rdev)
895 d->raid_disk = rdev2->raid_disk; 895 d->raid_disk = rdev2->raid_disk;
896 else 896 else
897 d->raid_disk = rdev2->desc_nr; /* compatibility */ 897 d->raid_disk = rdev2->desc_nr; /* compatibility */
898 if (test_bit(Faulty, &rdev2->flags)) { 898 if (test_bit(Faulty, &rdev2->flags))
899 d->state = (1<<MD_DISK_FAULTY); 899 d->state = (1<<MD_DISK_FAULTY);
900 failed++; 900 else if (test_bit(In_sync, &rdev2->flags)) {
901 } else if (test_bit(In_sync, &rdev2->flags)) {
902 d->state = (1<<MD_DISK_ACTIVE); 901 d->state = (1<<MD_DISK_ACTIVE);
903 d->state |= (1<<MD_DISK_SYNC); 902 d->state |= (1<<MD_DISK_SYNC);
904 active++; 903 active++;