diff options
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/raid1.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 0fd4c3bfc851..9d9acc3e51a7 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -1237,13 +1237,16 @@ static sector_t sync_request(mddev_t *mddev, sector_t sector_nr, int *skipped, i | |||
1237 | len = (max_sector - sector_nr) << 9; | 1237 | len = (max_sector - sector_nr) << 9; |
1238 | if (len == 0) | 1238 | if (len == 0) |
1239 | break; | 1239 | break; |
1240 | if (!conf->fullsync && sync_blocks == 0) | 1240 | if (!conf->fullsync) { |
1241 | if (!bitmap_start_sync(mddev->bitmap, | 1241 | if (sync_blocks == 0) { |
1242 | sector_nr, &sync_blocks)) | 1242 | if (!bitmap_start_sync(mddev->bitmap, |
1243 | break; | 1243 | sector_nr, &sync_blocks)) |
1244 | if (sync_blocks < (PAGE_SIZE>>9)) | 1244 | break; |
1245 | BUG(); | 1245 | if (sync_blocks < (PAGE_SIZE>>9)) |
1246 | if (len > (sync_blocks<<9)) len = sync_blocks<<9; | 1246 | BUG(); |
1247 | if (len > (sync_blocks<<9)) len = sync_blocks<<9; | ||
1248 | } | ||
1249 | } | ||
1247 | 1250 | ||
1248 | for (i=0 ; i < conf->raid_disks; i++) { | 1251 | for (i=0 ; i < conf->raid_disks; i++) { |
1249 | bio = r1_bio->bios[i]; | 1252 | bio = r1_bio->bios[i]; |