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 <shuhei.matsumoto.xt@hitachi.com> 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 <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Michael Haeuptle <michaelhaeuptle@gmail.com>
This commit is contained in:
parent
5322f30787
commit
43f3a8d99f
@ -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
|
static void
|
||||||
nvme_ctrlr_cmd_abort_cpl(void *ctx, const struct spdk_nvme_cpl *cpl)
|
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.sqid = sqid;
|
||||||
cmd->cdw10_bits.abort.cid = cid;
|
cmd->cdw10_bits.abort.cid = cid;
|
||||||
|
|
||||||
/* ACL is a 0's based value. */
|
rc = _nvme_ctrlr_submit_abort_request(ctrlr, req);
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
|
nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
|
||||||
return rc;
|
return rc;
|
||||||
|
Loading…
Reference in New Issue
Block a user