bdev: don't allow NVME_IO types for partitioned bdevs
Typically we just pass the bdevs supported IO types for each of its partitions. But that doesn't work for partitions with non-zero offsets since we can't decode/modify the NVMe command in the bdev layer to account for that offset. So just don't allow it. Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: I38a766fcc39d5f068b31245bf1a47dbb79c8f8dd Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/452930 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Seth Howell <seth.howell5141@gmail.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
parent
d58732d75e
commit
3837f0d0f5
@ -146,6 +146,19 @@ spdk_bdev_part_io_type_supported(void *_part, enum spdk_bdev_io_type io_type)
|
|||||||
{
|
{
|
||||||
struct spdk_bdev_part *part = _part;
|
struct spdk_bdev_part *part = _part;
|
||||||
|
|
||||||
|
/* We can't decode/modify passthrough NVMe commands, so don't report
|
||||||
|
* that a partition supports these io types, even if the underlying
|
||||||
|
* bdev does.
|
||||||
|
*/
|
||||||
|
switch (io_type) {
|
||||||
|
case SPDK_BDEV_IO_TYPE_NVME_ADMIN:
|
||||||
|
case SPDK_BDEV_IO_TYPE_NVME_IO:
|
||||||
|
case SPDK_BDEV_IO_TYPE_NVME_IO_MD:
|
||||||
|
return false;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return part->internal.base->bdev->fn_table->io_type_supported(part->internal.base->bdev->ctxt,
|
return part->internal.base->bdev->fn_table->io_type_supported(part->internal.base->bdev->ctxt,
|
||||||
io_type);
|
io_type);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user