From 3148c48079731e121ec2fc81fb15293219da1789 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Fri, 11 May 2018 15:57:19 -0700 Subject: [PATCH] nvme/rdma: create per-process controller struct The RDMA transport was not correctly registering new controllers on creation. RDMA doesn't support multi-process, but it still needs a single per-process structure for the owning process. Change-Id: I337ab9d00b468671e7c7a21175682beed4cfdd2e Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/410958 Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/nvme/nvme_rdma.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index 3ec29b67e..74b1009f9 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -1407,6 +1407,12 @@ struct spdk_nvme_ctrlr *nvme_rdma_ctrlr_construct(const struct spdk_nvme_transpo return NULL; } + if (nvme_ctrlr_add_process(&rctrlr->ctrlr, 0) != 0) { + SPDK_ERRLOG("nvme_ctrlr_add_process() failed\n"); + nvme_ctrlr_destruct(&rctrlr->ctrlr); + return NULL; + } + nvme_ctrlr_init_cap(&rctrlr->ctrlr, &cap, &vs); SPDK_DEBUGLOG(SPDK_LOG_NVME, "succesully initialized the nvmf ctrlr\n");