nvme: Unregister NVMe controller when bdevs creation fails

This patch fixes github issue #385.
We need to unregister previously created NVMe controller
when creation of NVMe bdevs fails otherwise we won't be
able to use NVMe device as it will stay in wrong state.

Signed-off-by: Maciej Szwed <maciej.szwed@intel.com>
Change-Id: I28a165aba1a556a2ed2d4cd5ff6fd510e80657d3

Reviewed-on: https://review.gerrithub.io/421006
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Maciej Szwed 2018-08-01 14:43:42 +02:00 committed by Jim Harris
parent 117fdae94b
commit 83d1bfae41

View File

@ -959,7 +959,7 @@ create_ctrlr(struct spdk_nvme_ctrlr *ctrlr,
sizeof(struct nvme_io_channel));
if (nvme_ctrlr_create_bdevs(nvme_ctrlr) != 0) {
spdk_io_device_unregister(ctrlr, NULL);
spdk_io_device_unregister(ctrlr, bdev_nvme_unregister_cb);
free(nvme_ctrlr->bdevs);
free(nvme_ctrlr->name);
free(nvme_ctrlr);