module/raid: check strip size against device block size

Change-Id: I7a8d0b8f89aa8e075632faa8eac19a26a9110e57
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14872
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Artur Paszkiewicz 2022-09-28 11:23:38 +02:00 committed by Tomasz Zawadzki
parent 19572e5b20
commit 31ce6cd8a3

View File

@ -1110,6 +1110,10 @@ raid_bdev_configure(struct raid_bdev *raid_bdev)
* internal use. * internal use.
*/ */
raid_bdev->strip_size = (raid_bdev->strip_size_kb * 1024) / blocklen; raid_bdev->strip_size = (raid_bdev->strip_size_kb * 1024) / blocklen;
if (raid_bdev->strip_size == 0 && raid_bdev->level != RAID1) {
SPDK_ERRLOG("Strip size cannot be smaller than the device block size\n");
return -EINVAL;
}
raid_bdev->strip_size_shift = spdk_u32log2(raid_bdev->strip_size); raid_bdev->strip_size_shift = spdk_u32log2(raid_bdev->strip_size);
raid_bdev->blocklen_shift = spdk_u32log2(blocklen); raid_bdev->blocklen_shift = spdk_u32log2(blocklen);