diff options
Diffstat (limited to 'drivers/md/raid1.c')
| -rw-r--r-- | drivers/md/raid1.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 8034fbd6190..a0f73092176 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c @@ -963,7 +963,7 @@ static void raid1_unplug(struct blk_plug_cb *cb, bool from_schedule)  	struct r1conf *conf = mddev->private;  	struct bio *bio; -	if (from_schedule) { +	if (from_schedule || current->bio_list) {  		spin_lock_irq(&conf->device_lock);  		bio_list_merge(&conf->pending_bio_list, &plug->pending);  		conf->pending_count += plug->pending_cnt; @@ -2710,7 +2710,7 @@ static struct r1conf *setup_conf(struct mddev *mddev)  		    || disk_idx < 0)  			continue;  		if (test_bit(Replacement, &rdev->flags)) -			disk = conf->mirrors + conf->raid_disks + disk_idx; +			disk = conf->mirrors + mddev->raid_disks + disk_idx;  		else  			disk = conf->mirrors + disk_idx;  |