|
@@ -1370,6 +1370,11 @@ static int bind_rdev_to_array(mdk_rdev_t * rdev, mddev_t * mddev)
|
|
MD_BUG();
|
|
MD_BUG();
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /* prevent duplicates */
|
|
|
|
+ if (find_rdev(mddev, rdev->bdev->bd_dev))
|
|
|
|
+ return -EEXIST;
|
|
|
|
+
|
|
/* make sure rdev->size exceeds mddev->size */
|
|
/* make sure rdev->size exceeds mddev->size */
|
|
if (rdev->size && (mddev->size == 0 || rdev->size < mddev->size)) {
|
|
if (rdev->size && (mddev->size == 0 || rdev->size < mddev->size)) {
|
|
if (mddev->pers) {
|
|
if (mddev->pers) {
|