From 1c2a2bb7f08c2b23e01935d1af01e0f1d1e48cb5 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Thu, 24 Sep 2020 11:10:11 +0900 Subject: [PATCH] bdev/nvme: Move TRID type check from bdev_nvme_create() to bdev_nvme_add_trid() This clean up the code a little more. Use the term failover instead of multipath in the error message. Signed-off-by: Shuhei Matsumoto Change-Id: I6b7fb8fe50b19b5639169c03f5242b9d6f14128b Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4390 Tested-by: SPDK CI Jenkins Reviewed-by: Aleksey Marchuk Reviewed-by: Jim Harris Reviewed-by: Ben Walker --- module/bdev/nvme/bdev_nvme.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/module/bdev/nvme/bdev_nvme.c b/module/bdev/nvme/bdev_nvme.c index 2568e5b84..ca91712d0 100644 --- a/module/bdev/nvme/bdev_nvme.c +++ b/module/bdev/nvme/bdev_nvme.c @@ -1786,6 +1786,11 @@ bdev_nvme_add_trid(struct nvme_bdev_ctrlr *nvme_bdev_ctrlr, struct spdk_nvme_tra assert(nvme_bdev_ctrlr != NULL); + if (trid->trtype == SPDK_NVME_TRANSPORT_PCIE) { + SPDK_ERRLOG("PCIe failover is not supported.\n"); + return -ENOTSUP; + } + /* Currently we only support failover to the same transport type. */ if (nvme_bdev_ctrlr->connected_trid->trtype != trid->trtype) { return -EINVAL; @@ -1929,12 +1934,6 @@ bdev_nvme_create(struct spdk_nvme_transport_id *trid, existing_ctrlr = nvme_bdev_ctrlr_get_by_name(base_name); if (existing_ctrlr) { - if (trid->trtype == SPDK_NVME_TRANSPORT_PCIE) { - SPDK_ERRLOG("A controller with the provided name (name: %s) already exists with transport type PCIe. PCIe multipath is not supported.\n", - base_name); - free(ctx); - return -EEXIST; - } rc = bdev_nvme_add_trid(existing_ctrlr, trid); if (rc) { free(ctx);