md: prevent duplicates in bind_rdev_to_array
Found when trying to reassemble an active externally managed array. Without this check we hit the more noisy "sysfs duplicate" warning in the later call to kobject_add. Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
242b363e22
commit
11e2ede022
@@ -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) {
|
||||||
|
Reference in New Issue
Block a user