Commit ceaa4ee0 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

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: default avatarShuhei 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: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
parent 0a153e8a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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);
+2 −0
Original line number Diff line number Diff line
@@ -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);