bdev/gpt: fail more gracefully on extended block size bdevs
The GPT module isn't designed currently to support extended block sizes like 520 or 4104, and we don't really have a good way to put GPT down on one of these devices anyways. So just check the block size when examining a new bdev, and fail immediately if it's not an even multiple of 512. Long-term, this should probably be a DEBUG print and not an ERRLOG, but while we work through the bdev implications of extended block sizes, keep it as an ERRLOG to facilitate debugging. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I1bce0e3b1f0edee2f4d002edf3aaa7e6c16d9677 Reviewed-on: https://review.gerrithub.io/422321 Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Liang Yan <liang.z.yan@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Seth Howell <seth.howell5141@gmail.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
5b900148e5
commit
9ee4942130
@ -388,6 +388,13 @@ vbdev_gpt_examine(struct spdk_bdev *bdev)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (spdk_bdev_get_block_size(bdev) % 512 != 0) {
|
||||||
|
SPDK_ERRLOG("GPT module does not support block size %" PRIu32 " for bdev %s\n",
|
||||||
|
spdk_bdev_get_block_size(bdev), spdk_bdev_get_name(bdev));
|
||||||
|
spdk_bdev_module_examine_done(&gpt_if);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
rc = vbdev_gpt_read_gpt(bdev);
|
rc = vbdev_gpt_read_gpt(bdev);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
spdk_bdev_module_examine_done(&gpt_if);
|
spdk_bdev_module_examine_done(&gpt_if);
|
||||||
|
Loading…
Reference in New Issue
Block a user