|
@@ -2550,6 +2550,7 @@ static struct r1conf *setup_conf(struct mddev *mddev)
|
|
|
err = -EINVAL;
|
|
|
spin_lock_init(&conf->device_lock);
|
|
|
rdev_for_each(rdev, mddev) {
|
|
|
+ struct request_queue *q;
|
|
|
int disk_idx = rdev->raid_disk;
|
|
|
if (disk_idx >= mddev->raid_disks
|
|
|
|| disk_idx < 0)
|
|
@@ -2562,6 +2563,9 @@ static struct r1conf *setup_conf(struct mddev *mddev)
|
|
|
if (disk->rdev)
|
|
|
goto abort;
|
|
|
disk->rdev = rdev;
|
|
|
+ q = bdev_get_queue(rdev->bdev);
|
|
|
+ if (q->merge_bvec_fn)
|
|
|
+ mddev->merge_check_needed = 1;
|
|
|
|
|
|
disk->head_position = 0;
|
|
|
}
|