diff options
Diffstat (limited to 'drivers/md/raid1.c')
-rw-r--r-- | drivers/md/raid1.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 1efe22a2d041..87bfe9e7d8ca 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -1625,15 +1625,16 @@ static sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *skipped, i | |||
1625 | return 0; | 1625 | return 0; |
1626 | } | 1626 | } |
1627 | 1627 | ||
1628 | /* before building a request, check if we can skip these blocks.. | ||
1629 | * This call the bitmap_start_sync doesn't actually record anything | ||
1630 | */ | ||
1631 | if (mddev->bitmap == NULL && | 1628 | if (mddev->bitmap == NULL && |
1632 | mddev->recovery_cp == MaxSector && | 1629 | mddev->recovery_cp == MaxSector && |
1630 | !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery) && | ||
1633 | conf->fullsync == 0) { | 1631 | conf->fullsync == 0) { |
1634 | *skipped = 1; | 1632 | *skipped = 1; |
1635 | return max_sector - sector_nr; | 1633 | return max_sector - sector_nr; |
1636 | } | 1634 | } |
1635 | /* before building a request, check if we can skip these blocks.. | ||
1636 | * This call the bitmap_start_sync doesn't actually record anything | ||
1637 | */ | ||
1637 | if (!bitmap_start_sync(mddev->bitmap, sector_nr, &sync_blocks, 1) && | 1638 | if (!bitmap_start_sync(mddev->bitmap, sector_nr, &sync_blocks, 1) && |
1638 | !conf->fullsync && !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) { | 1639 | !conf->fullsync && !test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) { |
1639 | /* We can skip this block, and probably several more */ | 1640 | /* We can skip this block, and probably several more */ |