nvme: Increment ctrlr->outstanding_aborts when aborting req in ctrlr->queued_aborts

We had not incremented ctrlr->outstanding_aborts when aborting a
request in the ctrlr->queued_aborts, and ctrlr->outstanding_aborts
became negative. Fix the bug in this patch. Additionally add assert
to check if ctrlr->outstanding_aborts is not negative.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I58090286f070ba854bdea87f0f8ecb7810890338
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13452
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Shuhei Matsumoto 2022-06-24 14:26:35 +09:00 committed by Tomasz Zawadzki
parent 0a153e8af4
commit ceaa4ee0f7
2 changed files with 3 additions and 0 deletions

View File

@ -1595,6 +1595,7 @@ nvme_ctrlr_abort_queued_aborts(struct spdk_nvme_ctrlr *ctrlr)
STAILQ_FOREACH_SAFE(req, &ctrlr->queued_aborts, stailq, tmp) {
STAILQ_REMOVE_HEAD(&ctrlr->queued_aborts, stailq);
ctrlr->outstanding_aborts++;
nvme_complete_request(req->cb_fn, req->cb_arg, req->qpair, req, &cpl);
nvme_free_request(req);

View File

@ -589,6 +589,7 @@ nvme_ctrlr_cmd_abort_cpl(void *ctx, const struct spdk_nvme_cpl *cpl)
ctrlr = req->qpair->ctrlr;
assert(ctrlr->outstanding_aborts > 0);
ctrlr->outstanding_aborts--;
nvme_ctrlr_retry_queued_abort(ctrlr);
@ -637,6 +638,7 @@ nvme_complete_abort_request(void *ctx, const struct spdk_nvme_cpl *cpl)
ctrlr = req->qpair->ctrlr;
assert(ctrlr->outstanding_aborts > 0);
ctrlr->outstanding_aborts--;
nvme_ctrlr_retry_queued_abort(ctrlr);