From 5f8c056649e260d9a6017f9246ed824c9ce8beee Mon Sep 17 00:00:00 2001 From: Kozlowski Mateusz Date: Wed, 16 Nov 2022 14:45:47 +0100 Subject: [PATCH] module/ftl: Translate rc to spdk_bdev_io_status on submission error Currently this translation was only done for IOs that were successfully submitted. This needs to be done on submission too, in order to pass the proper error code to the bdev layer. Signed-off-by: Kozlowski Mateusz Change-Id: I69bf7b33b4d3a89199e1105c7f49ceeb7ab07da4 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15486 Tested-by: SPDK CI Jenkins Community-CI: Mellanox Build Bot Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- module/bdev/ftl/bdev_ftl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/module/bdev/ftl/bdev_ftl.c b/module/bdev/ftl/bdev_ftl.c index f12198e14..6115cef5c 100644 --- a/module/bdev/ftl/bdev_ftl.c +++ b/module/bdev/ftl/bdev_ftl.c @@ -94,6 +94,7 @@ bdev_ftl_cb(void *arg, int rc) case 0: status = SPDK_BDEV_IO_STATUS_SUCCESS; break; + case -EAGAIN: case -ENOMEM: status = SPDK_BDEV_IO_STATUS_NOMEM; break; @@ -126,7 +127,7 @@ bdev_ftl_get_buf_cb(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io, bdev_io->u.bdev.iovs, bdev_io->u.bdev.iovcnt, bdev_ftl_cb, bdev_io); if (spdk_unlikely(rc != 0)) { - spdk_bdev_io_complete(bdev_io, rc); + bdev_ftl_cb(bdev_io, rc); } } @@ -165,7 +166,7 @@ bdev_ftl_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev_io int rc = _bdev_ftl_submit_request(ch, bdev_io); if (spdk_unlikely(rc != 0)) { - spdk_bdev_io_complete(bdev_io, rc); + bdev_ftl_cb(bdev_io, rc); } }