diff --git a/lib/nvme/nvme_pcie.c b/lib/nvme/nvme_pcie.c index 5c710efad..ec9058cbd 100644 --- a/lib/nvme/nvme_pcie.c +++ b/lib/nvme/nvme_pcie.c @@ -1383,6 +1383,8 @@ nvme_pcie_qpair_complete_tracker(struct spdk_nvme_qpair *qpair, struct nvme_trac req->retries++; nvme_pcie_qpair_submit_tracker(qpair, tr); } else { + TAILQ_REMOVE(&pqpair->outstanding_tr, tr, tq_list); + /* Only check admin requests from different processes. */ if (nvme_qpair_is_admin_queue(qpair) && req->pid != getpid()) { req_from_current_proc = false; @@ -1397,7 +1399,6 @@ nvme_pcie_qpair_complete_tracker(struct spdk_nvme_qpair *qpair, struct nvme_trac tr->req = NULL; - TAILQ_REMOVE(&pqpair->outstanding_tr, tr, tq_list); TAILQ_INSERT_HEAD(&pqpair->free_tr, tr, tq_list); } }