From 4be1cd85f014adb94d691e602faf095e7336771a Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Tue, 22 Nov 2016 15:42:43 -0700 Subject: [PATCH] nvmf: use bdev_io NVMe status code if available Change-Id: If7003bf5c6a6fa0a4d1c6b8fda4cc19b6dc77482 Signed-off-by: Daniel Verkamp --- lib/nvmf/virtual.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/nvmf/virtual.c b/lib/nvmf/virtual.c index 7871d9596..f8a0da53e 100644 --- a/lib/nvmf/virtual.c +++ b/lib/nvmf/virtual.c @@ -133,10 +133,13 @@ nvmf_virtual_ctrlr_complete_cmd(spdk_event_t event) free(bdev_io->u.unmap.unmap_bdesc); } - if (status != SPDK_BDEV_IO_STATUS_SUCCESS) { - response->status.sc = SPDK_NVME_SC_INTERNAL_DEVICE_ERROR; - } else { + if (status == SPDK_BDEV_IO_STATUS_SUCCESS) { response->status.sc = SPDK_NVME_SC_SUCCESS; + } else if (status == SPDK_BDEV_IO_STATUS_NVME_ERROR) { + response->status.sct = bdev_io->error.nvme.sct; + response->status.sc = bdev_io->error.nvme.sc; + } else { + response->status.sc = SPDK_NVME_SC_INTERNAL_DEVICE_ERROR; } spdk_nvmf_request_complete(req); spdk_bdev_free_io(bdev_io);