diff options
author | NeilBrown <neilb@suse.de> | 2006-03-27 04:18:03 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-27 11:45:00 -0500 |
commit | 1be7892fffb45f6017494a88ff68fe84c6de26b4 (patch) | |
tree | 685f3d32dc97becd58262531f0827f8d3bb6e96b /drivers/md/md.c | |
parent | c5a10f62c5c496c49db749af103b991873b7e2dc (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>
Diffstat (limited to 'drivers/md/md.c')
-rw-r--r-- | drivers/md/md.c | 5 |
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++; |