From ea55b03940ed9d13a2ef4a90d21dd6f2686a12ce Mon Sep 17 00:00:00 2001 From: Chen Wang Date: Mon, 30 Jul 2018 10:17:27 +0800 Subject: [PATCH] nvme/nvme_rdma: free the ctrlr when creating the qpair fails Release nvme rdma ctrlr before exit the nvme_rdma_ctrlr_construct function when creating the admin qpair fails. Fixes GitHub issue #363. Change-Id: Ib988e0da2f627db06b68bd3fb72c117c52572cf8 Signed-off-by: Chen Wang Reviewed-on: https://review.gerrithub.io/420719 Tested-by: SPDK CI Jenkins Chandler-Test-Pool: SPDK Automated Test System Reviewed-by: Changpeng Liu Reviewed-by: Shuhei Matsumoto Reviewed-by: Ben Walker --- lib/nvme/nvme_rdma.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index d2743d418..0c7c50308 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -1105,7 +1105,7 @@ struct spdk_nvme_ctrlr *nvme_rdma_ctrlr_construct(const struct spdk_nvme_transpo rc = nvme_ctrlr_construct(&rctrlr->ctrlr); if (rc != 0) { - nvme_ctrlr_destruct(&rctrlr->ctrlr); + free(rctrlr); return NULL; } @@ -1113,6 +1113,7 @@ struct spdk_nvme_ctrlr *nvme_rdma_ctrlr_construct(const struct spdk_nvme_transpo SPDK_NVMF_MIN_ADMIN_QUEUE_ENTRIES, 0, SPDK_NVMF_MIN_ADMIN_QUEUE_ENTRIES); if (!rctrlr->ctrlr.adminq) { SPDK_ERRLOG("failed to create admin qpair\n"); + nvme_rdma_ctrlr_destruct(&rctrlr->ctrlr); return NULL; }