[PATCH] md: Fix bug that stops raid5 resync from happening
authorNeilBrown <neilb@suse.de>
Mon, 26 Jun 2006 07:27:55 +0000 (00:27 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 26 Jun 2006 16:58:39 +0000 (09:58 -0700)
As data_disks is *less* than raid_disks, the current test here is obviously
wrong.  And as the difference is already available in conf->max_degraded, it
makes much more sense to use that.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/md/raid5.c

index 6d3a2a09cd900998a593c5ca63846e8d293c2ea0..f920e50ea124dfe9052288f8f526cb314b230249 100644 (file)
@@ -2858,7 +2858,7 @@ static inline sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *ski
         * to resync, then assert that we are finished, because there is
         * nothing we can do.
         */
-       if (mddev->degraded >= (data_disks - raid_disks) &&
+       if (mddev->degraded >= conf->max_degraded &&
            test_bit(MD_RECOVERY_SYNC, &mddev->recovery)) {
                sector_t rv = (mddev->size << 1) - sector_nr;
                *skipped = 1;