nvmf/rdma: Simplify spdk_nvmf_rdma_qp_drained

No longer send an event to process the pending queue -
just do it inline.

Change-Id: I32716c9ecac3791de297c2a48529c15d220dbe6c
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/421044
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Seth Howell <seth.howell5141@gmail.com>
This commit is contained in:
Ben Walker 2018-08-01 16:20:10 -07:00 committed by Jim Harris
parent 65a512c6cd
commit 3bec66015e

View File

@ -1902,22 +1902,6 @@ spdk_nvmf_rdma_qpair_process_pending(struct spdk_nvmf_rdma_transport *rtransport
} }
} }
/* The recovery completion event handler to be executed in the rqpair
* poll group thread. It kicks off processing of the requests that are
* waiting for the rqpair is back online.
*/
static void
_spdk_nvmf_rdma_qpair_process_pending(void *arg)
{
struct spdk_nvmf_rdma_qpair *rqpair;
struct spdk_nvmf_rdma_transport *rtransport;
rqpair = arg;
rtransport = SPDK_CONTAINEROF(rqpair->qpair.transport,
struct spdk_nvmf_rdma_transport, transport);
spdk_nvmf_rdma_qpair_process_pending(rtransport, rqpair);
}
static void static void
spdk_nvmf_rdma_drain_state_queue(struct spdk_nvmf_rdma_qpair *rqpair, spdk_nvmf_rdma_drain_state_queue(struct spdk_nvmf_rdma_qpair *rqpair,
enum spdk_nvmf_rdma_request_state state) enum spdk_nvmf_rdma_request_state state)
@ -1938,6 +1922,7 @@ spdk_nvmf_rdma_qp_drained(struct spdk_nvmf_rdma_qpair *rqpair)
{ {
int recovered; int recovered;
enum ibv_qp_state state, next_state; enum ibv_qp_state state, next_state;
struct spdk_nvmf_rdma_transport *rtransport;
SPDK_NOTICELOG("IBV QP#%u drained\n", rqpair->qpair.qid); SPDK_NOTICELOG("IBV QP#%u drained\n", rqpair->qpair.qid);
@ -2009,7 +1994,10 @@ spdk_nvmf_rdma_qp_drained(struct spdk_nvmf_rdma_qpair *rqpair)
state = next_state; state = next_state;
} }
rqpair->qpair.state = SPDK_NVMF_QPAIR_ACTIVE; rqpair->qpair.state = SPDK_NVMF_QPAIR_ACTIVE;
spdk_thread_send_msg(rqpair->qpair.group->thread, _spdk_nvmf_rdma_qpair_process_pending, rqpair);
rtransport = SPDK_CONTAINEROF(rqpair->qpair.transport,
struct spdk_nvmf_rdma_transport, transport);
spdk_nvmf_rdma_qpair_process_pending(rtransport, rqpair);
return; return;
error: error: