From 63fb2f772c1e05483537256f0c3ed388162e34e1 Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Tue, 17 Apr 2018 16:00:07 -0700 Subject: [PATCH] nvme: Close file descriptor if controller fails to initialize Change-Id: I9fee91ece79b204962a70fc49d9032abe2c55090 Signed-off-by: Ben Walker Reviewed-on: https://review.gerrithub.io/408218 Reviewed-by: Daniel Verkamp Tested-by: SPDK Automated Test System Reviewed-by: Jim Harris --- lib/nvme/nvme_pcie.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/nvme/nvme_pcie.c b/lib/nvme/nvme_pcie.c index cefe4c2a1..972824f59 100644 --- a/lib/nvme/nvme_pcie.c +++ b/lib/nvme/nvme_pcie.c @@ -790,6 +790,7 @@ struct spdk_nvme_ctrlr *nvme_pcie_ctrlr_construct(const struct spdk_nvme_transpo pctrlr = spdk_dma_zmalloc(sizeof(struct nvme_pcie_ctrlr), 64, NULL); if (pctrlr == NULL) { + close(claim_fd); SPDK_ERRLOG("could not allocate ctrlr\n"); return NULL; } @@ -804,6 +805,7 @@ struct spdk_nvme_ctrlr *nvme_pcie_ctrlr_construct(const struct spdk_nvme_transpo rc = nvme_pcie_ctrlr_allocate_bars(pctrlr); if (rc != 0) { + close(claim_fd); spdk_dma_free(pctrlr); return NULL; } @@ -815,6 +817,7 @@ struct spdk_nvme_ctrlr *nvme_pcie_ctrlr_construct(const struct spdk_nvme_transpo if (nvme_ctrlr_get_cap(&pctrlr->ctrlr, &cap)) { SPDK_ERRLOG("get_cap() failed\n"); + close(claim_fd); spdk_dma_free(pctrlr); return NULL; }