From: NeilBrown 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 Signed-off-by: Andrew Morton --- drivers/md/raid5.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/md/raid5.c~md-fix-bug-that-stops-raid5-resync-from-happening drivers/md/raid5.c --- devel/drivers/md/raid5.c~md-fix-bug-that-stops-raid5-resync-from-happening 2006-05-31 22:28:13.000000000 -0700 +++ devel-akpm/drivers/md/raid5.c 2006-05-31 22:28:13.000000000 -0700 @@ -2858,7 +2858,7 @@ static inline sector_t sync_request(mdde * 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; _