From e9e9053a2383714b470c52159efa130938b9b4ed Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Sun, 4 Oct 2020 16:08:36 +0900 Subject: [PATCH] bdev/ocssd: Separate main and error operations of bdev_ocssd_submit_request() As same as the last patch, follow the pattern used by standard nvme bdev about bdev_ocssd_submit_request(). Extract main operations from bdev_ocssd_submit_request() into _bdev_ocssd_submit_request(). Signed-off-by: Shuhei Matsumoto Change-Id: I286b4d82a356a3f1fac9c052397714cd7ee8497d Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4525 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Paul Luse Reviewed-by: Aleksey Marchuk Reviewed-by: Mellanox Build Bot Reviewed-by: Jim Harris --- module/bdev/nvme/bdev_ocssd.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/module/bdev/nvme/bdev_ocssd.c b/module/bdev/nvme/bdev_ocssd.c index 8383e3db0..c9b457d8f 100644 --- a/module/bdev/nvme/bdev_ocssd.c +++ b/module/bdev/nvme/bdev_ocssd.c @@ -737,38 +737,39 @@ bdev_ocssd_delay_request(struct spdk_io_channel *ioch, struct spdk_bdev_io *bdev spdk_poller_resume(ocssd_ioch->pending_poller); } -static void -bdev_ocssd_submit_request(struct spdk_io_channel *ioch, struct spdk_bdev_io *bdev_io) +static int +_bdev_ocssd_submit_request(struct spdk_io_channel *ioch, struct spdk_bdev_io *bdev_io) { - int rc = 0; - switch (bdev_io->type) { case SPDK_BDEV_IO_TYPE_READ: spdk_bdev_io_get_buf(bdev_io, bdev_ocssd_io_get_buf_cb, bdev_io->u.bdev.num_blocks * bdev_io->bdev->blocklen); - break; + return 0; case SPDK_BDEV_IO_TYPE_WRITE: - rc = bdev_ocssd_write(ioch, bdev_io); - break; + return bdev_ocssd_write(ioch, bdev_io); case SPDK_BDEV_IO_TYPE_ZONE_MANAGEMENT: - rc = bdev_ocssd_zone_management(ioch, bdev_io); - break; + return bdev_ocssd_zone_management(ioch, bdev_io); case SPDK_BDEV_IO_TYPE_GET_ZONE_INFO: - rc = bdev_ocssd_get_zone_info(ioch, bdev_io); - break; + return bdev_ocssd_get_zone_info(ioch, bdev_io); case SPDK_BDEV_IO_TYPE_ZONE_APPEND: - rc = bdev_ocssd_zone_append(ioch, bdev_io); - break; + return bdev_ocssd_zone_append(ioch, bdev_io); default: - rc = -EINVAL; - break; + return -EINVAL; } + return 0; +} + +static void +bdev_ocssd_submit_request(struct spdk_io_channel *ioch, struct spdk_bdev_io *bdev_io) +{ + int rc = _bdev_ocssd_submit_request(ioch, bdev_io); + if (spdk_unlikely(rc != 0)) { switch (rc) { case -ENOMEM: