From 623161daca64f4698dbc8cd8487121cafb33a277 Mon Sep 17 00:00:00 2001 From: Ziye Yang Date: Thu, 28 Dec 2017 15:02:21 +0800 Subject: [PATCH] lvol: make the status correct. If faced no memory status, we should set it to nomem, thus, we can make this I/O resubmit it again. Change-Id: Icb9a7eeab3278021fa95a5e33c7ff55b3cc62558 Signed-off-by: Ziye Yang Reviewed-on: https://review.gerrithub.io/393122 Reviewed-by: Daniel Verkamp Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker --- lib/bdev/lvol/vbdev_lvol.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/bdev/lvol/vbdev_lvol.c b/lib/bdev/lvol/vbdev_lvol.c index 9a70c390b..f9113a6c5 100644 --- a/lib/bdev/lvol/vbdev_lvol.c +++ b/lib/bdev/lvol/vbdev_lvol.c @@ -515,7 +515,11 @@ lvol_op_comp(void *cb_arg, int bserrno) struct spdk_bdev_io *bdev_io = spdk_bdev_io_from_ctx(task); if (bserrno != 0) { - task->status = SPDK_BDEV_IO_STATUS_FAILED; + if (bserrno == -ENOMEM) { + task->status = SPDK_BDEV_IO_STATUS_NOMEM; + } else { + task->status = SPDK_BDEV_IO_STATUS_FAILED; + } } SPDK_INFOLOG(SPDK_LOG_VBDEV_LVOL, "Vbdev processing callback on device %s with type %d\n",