From 8b26fdd5eaddd50c88fbf730683bfc655b0f8457 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Mon, 23 Nov 2020 12:57:54 +0900 Subject: [PATCH] bdev/nvme: Use spdk_nvme_ns_get_max_io_xfer_size() for I/O passthrough This and the next change will enable us to pass spdk_nvme_ns and spdk_nvme_qpair as parameters to I/O passthrough APIs. When we support ANA multipath, ANA state of spdk_nvme_ns will be checked. These changes follow that. Signed-off-by: Shuhei Matsumoto Change-Id: Id38a0e14501ff6402f9b151eaf9e44864079412b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5200 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Aleksey Marchuk Reviewed-by: Jim Harris --- module/bdev/nvme/bdev_nvme.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/module/bdev/nvme/bdev_nvme.c b/module/bdev/nvme/bdev_nvme.c index 2bce7df43..9657329ce 100644 --- a/module/bdev/nvme/bdev_nvme.c +++ b/module/bdev/nvme/bdev_nvme.c @@ -2659,7 +2659,7 @@ bdev_nvme_io_passthru(struct nvme_bdev_ns *nvme_ns, struct nvme_io_channel *nvme struct nvme_bdev_io *bio, struct spdk_nvme_cmd *cmd, void *buf, size_t nbytes) { - uint32_t max_xfer_size = spdk_nvme_ctrlr_get_max_xfer_size(nvme_ns->ctrlr->ctrlr); + uint32_t max_xfer_size = spdk_nvme_ns_get_max_io_xfer_size(nvme_ns->ns); if (nbytes > max_xfer_size) { SPDK_ERRLOG("nbytes is greater than MDTS %" PRIu32 ".\n", max_xfer_size); @@ -2682,7 +2682,7 @@ bdev_nvme_io_passthru_md(struct nvme_bdev_ns *nvme_ns, struct nvme_io_channel *n struct spdk_nvme_cmd *cmd, void *buf, size_t nbytes, void *md_buf, size_t md_len) { size_t nr_sectors = nbytes / spdk_nvme_ns_get_extended_sector_size(nvme_ns->ns); - uint32_t max_xfer_size = spdk_nvme_ctrlr_get_max_xfer_size(nvme_ns->ctrlr->ctrlr); + uint32_t max_xfer_size = spdk_nvme_ns_get_max_io_xfer_size(nvme_ns->ns); if (nbytes > max_xfer_size) { SPDK_ERRLOG("nbytes is greater than MDTS %" PRIu32 ".\n", max_xfer_size);