rdma: process pending reqs before destroying qp
This is an attempt to clean up requests sititng in the waiting_for_buffer state before destroying it for good. Change-Id: I8ae047e4d7fd01f30419ae346e4da49355dc033d Signed-off-by: Seth Howell <seth.howell@intel.com> Reviewed-on: https://review.gerrithub.io/c/440127 Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
e0280b1100
commit
b17e0ae7db
@ -1405,7 +1405,7 @@ spdk_nvmf_rdma_request_process(struct spdk_nvmf_rdma_transport *rtransport,
|
||||
|
||||
TAILQ_REMOVE(&rqpair->incoming_queue, rdma_recv, link);
|
||||
|
||||
if (rqpair->ibv_attr.qp_state == IBV_QPS_ERR) {
|
||||
if (rqpair->ibv_attr.qp_state == IBV_QPS_ERR || rqpair->qpair.state != SPDK_NVMF_QPAIR_ACTIVE) {
|
||||
spdk_nvmf_rdma_request_set_state(rdma_req, RDMA_REQUEST_STATE_COMPLETED);
|
||||
break;
|
||||
}
|
||||
@ -2647,6 +2647,7 @@ spdk_nvmf_rdma_poller_poll(struct spdk_nvmf_rdma_transport *rtransport,
|
||||
SPDK_DEBUGLOG(SPDK_LOG_RDMA, "Drained QP RECV %u (%p)\n", rqpair->qpair.qid, rqpair);
|
||||
rqpair->disconnect_flags |= RDMA_QP_RECV_DRAINED;
|
||||
if (rqpair->disconnect_flags & RDMA_QP_SEND_DRAINED) {
|
||||
spdk_nvmf_rdma_qpair_process_pending(rtransport, rqpair, true);
|
||||
spdk_nvmf_rdma_qpair_destroy(rqpair);
|
||||
}
|
||||
/* Continue so that this does not trigger the disconnect path below. */
|
||||
@ -2657,6 +2658,7 @@ spdk_nvmf_rdma_poller_poll(struct spdk_nvmf_rdma_transport *rtransport,
|
||||
SPDK_DEBUGLOG(SPDK_LOG_RDMA, "Drained QP SEND %u (%p)\n", rqpair->qpair.qid, rqpair);
|
||||
rqpair->disconnect_flags |= RDMA_QP_SEND_DRAINED;
|
||||
if (rqpair->disconnect_flags & RDMA_QP_RECV_DRAINED) {
|
||||
spdk_nvmf_rdma_qpair_process_pending(rtransport, rqpair, true);
|
||||
spdk_nvmf_rdma_qpair_destroy(rqpair);
|
||||
}
|
||||
/* Continue so that this does not trigger the disconnect path below. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user