forked from Minki/linux
[PATCH] md: fix calculation of ->degraded for multipath and raid10
Two less-used md personalities have bugs in the calculation of ->degraded (the extent to which the array is degraded). Signed-off-by: Neil Brown <neilb@suse.de> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
3c5473f807
commit
2e333e8986
@ -501,7 +501,7 @@ static int multipath_run (mddev_t *mddev)
|
||||
mdname(mddev));
|
||||
goto out_free_conf;
|
||||
}
|
||||
mddev->degraded = conf->raid_disks = conf->working_disks;
|
||||
mddev->degraded = conf->raid_disks - conf->working_disks;
|
||||
|
||||
conf->pool = mempool_create_kzalloc_pool(NR_RESERVED_BUFS,
|
||||
sizeof(struct multipath_bh));
|
||||
|
@ -2079,7 +2079,7 @@ static int run(mddev_t *mddev)
|
||||
disk = conf->mirrors + i;
|
||||
|
||||
if (!disk->rdev ||
|
||||
!test_bit(In_sync, &rdev->flags)) {
|
||||
!test_bit(In_sync, &disk->rdev->flags)) {
|
||||
disk->head_position = 0;
|
||||
mddev->degraded++;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user