|
@@ -1777,12 +1777,6 @@ int md_integrity_register(mddev_t *mddev)
|
|
continue;
|
|
continue;
|
|
if (rdev->raid_disk < 0)
|
|
if (rdev->raid_disk < 0)
|
|
continue;
|
|
continue;
|
|
- /*
|
|
|
|
- * If at least one rdev is not integrity capable, we can not
|
|
|
|
- * enable data integrity for the md device.
|
|
|
|
- */
|
|
|
|
- if (!bdev_get_integrity(rdev->bdev))
|
|
|
|
- return -EINVAL;
|
|
|
|
if (!reference) {
|
|
if (!reference) {
|
|
/* Use the first rdev as the reference */
|
|
/* Use the first rdev as the reference */
|
|
reference = rdev;
|
|
reference = rdev;
|
|
@@ -1793,6 +1787,8 @@ int md_integrity_register(mddev_t *mddev)
|
|
rdev->bdev->bd_disk) < 0)
|
|
rdev->bdev->bd_disk) < 0)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
+ if (!reference || !bdev_get_integrity(reference->bdev))
|
|
|
|
+ return 0;
|
|
/*
|
|
/*
|
|
* All component devices are integrity capable and have matching
|
|
* All component devices are integrity capable and have matching
|
|
* profiles, register the common profile for the md device.
|
|
* profiles, register the common profile for the md device.
|