From 43f3a8d99f74fbda064cfee395941862f1d1876b Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Tue, 19 May 2020 03:12:31 +0900 Subject: [PATCH] lib/nvme: Factor out submit abort request into a helper function To reuse the code for the upcoming new function spdk_nvme_ctrlr_cmd_abort_ext(), factor out the operation to submit an abort request into an new helper function _nvme_ctrlr_submit_abort_request(). Signed-off-by: Shuhei Matsumoto Change-Id: Id00bed8fb8dc15b77e3c7f19105c1623588faa53 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2494 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Aleksey Marchuk Reviewed-by: Jim Harris Reviewed-by: Michael Haeuptle --- lib/nvme/nvme_ctrlr_cmd.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/lib/nvme/nvme_ctrlr_cmd.c b/lib/nvme/nvme_ctrlr_cmd.c index 69c6a3631..2a354d688 100644 --- a/lib/nvme/nvme_ctrlr_cmd.c +++ b/lib/nvme/nvme_ctrlr_cmd.c @@ -593,6 +593,20 @@ nvme_ctrlr_retry_queued_abort(struct spdk_nvme_ctrlr *ctrlr) } } +static int +_nvme_ctrlr_submit_abort_request(struct spdk_nvme_ctrlr *ctrlr, + struct nvme_request *req) +{ + /* ACL is a 0's based value. */ + if (ctrlr->outstanding_aborts >= ctrlr->cdata.acl + 1U) { + STAILQ_INSERT_TAIL(&ctrlr->queued_aborts, req, stailq); + return 0; + } else { + ctrlr->outstanding_aborts++; + return nvme_ctrlr_submit_admin_request(ctrlr, req); + } +} + static void nvme_ctrlr_cmd_abort_cpl(void *ctx, const struct spdk_nvme_cpl *cpl) { @@ -640,14 +654,7 @@ spdk_nvme_ctrlr_cmd_abort(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_qpair cmd->cdw10_bits.abort.sqid = sqid; cmd->cdw10_bits.abort.cid = cid; - /* ACL is a 0's based value. */ - if (ctrlr->outstanding_aborts >= ctrlr->cdata.acl + 1U) { - STAILQ_INSERT_TAIL(&ctrlr->queued_aborts, req, stailq); - rc = 0; - } else { - ctrlr->outstanding_aborts++; - rc = nvme_ctrlr_submit_admin_request(ctrlr, req); - } + rc = _nvme_ctrlr_submit_abort_request(ctrlr, req); nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock); return rc;