diff --git a/drivers/md/md.c b/drivers/md/md.c index 75a3f483522dab18ac7d0b1529d818ea958088a8..bec00b201a7328c3074950f807c52644ac6757e9 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -1370,6 +1370,11 @@ static int bind_rdev_to_array(mdk_rdev_t * rdev, mddev_t * mddev) MD_BUG(); return -EINVAL; } + + /* prevent duplicates */ + if (find_rdev(mddev, rdev->bdev->bd_dev)) + return -EEXIST; + /* make sure rdev->size exceeds mddev->size */ if (rdev->size && (mddev->size == 0 || rdev->size < mddev->size)) { if (mddev->pers) {