diff options
Diffstat (limited to 'drivers/md/raid1.c')
| -rw-r--r-- | drivers/md/raid1.c | 3 | 
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 8c2754f835e..240ff312504 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -2485,9 +2485,10 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipp  	 */  	if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) {  		atomic_set(&r1_bio->remaining, read_targets); -		for (i = 0; i < conf->raid_disks * 2; i++) { +		for (i = 0; i < conf->raid_disks * 2 && read_targets; i++) {  			bio = r1_bio->bios[i];  			if (bio->bi_end_io == end_sync_read) { +				read_targets--;  				md_sync_acct(bio->bi_bdev, nr_sectors);  				generic_make_request(bio);  			}  |