Commit cb2a7330 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Jim Harris
Browse files

nvme_pcie: Fix nvme_qpair_abort_all_queued_reqs() to be called for adminq

By the patch https://github.com/spdk/spdk/commit/736b9da0342d10acdb8deebf6f93fb799275a5a3
nvme_qpair_abort_all_queued_reqs() was changed to be called after the
adminq is actually disconnected.

However, the patch https://github.com/spdk/spdk/commit/ac31590b37a9d0861a5e9cdc1d0623c91fc1553a


unexpectedly disabled to call nvme_qpair_abort_all_queued_reqs() for
adminq because qpair->active_proc is NULL for adminq.

Add one more condition to nvme_transport_ctrlr_disconnect_qpair_done().

Fixes issue #2928

Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ic65f4cd952e6e89275788ff4b86ceca050f624d5
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17001


Reviewed-by: default avatarMichael Haeuptle <michaelhaeuptle@gmail.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 772bffcb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -537,7 +537,8 @@ nvme_transport_ctrlr_disconnect_qpair(struct spdk_nvme_ctrlr *ctrlr, struct spdk
void
nvme_transport_ctrlr_disconnect_qpair_done(struct spdk_nvme_qpair *qpair)
{
	if (qpair->active_proc == nvme_ctrlr_get_current_process(qpair->ctrlr)) {
	if (qpair->active_proc == nvme_ctrlr_get_current_process(qpair->ctrlr) ||
	    nvme_qpair_is_admin_queue(qpair)) {
		nvme_qpair_abort_all_queued_reqs(qpair, 0);
	}
	nvme_qpair_set_state(qpair, NVME_QPAIR_DISCONNECTED);