From 8f5cd34671e03d3a5f467ad446624e9848532950 Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Tue, 4 Sep 2018 11:50:57 -0700 Subject: [PATCH] nvmf/rdma: Pass a message to the owning thread on qpair disconnect This was the only usage of spdk_nvmf_qpair_disconnect that was not being called from the owning thread. Send a message here so that spdk_nvmf_qpair_disconnect can be simplified later. Change-Id: Ic5fae4503a95f7183079a02544812a9fc5d4def5 Signed-off-by: Ben Walker Reviewed-on: https://review.gerrithub.io/424592 Reviewed-by: Seth Howell Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins Chandler-Test-Pool: SPDK Automated Test System --- lib/nvmf/rdma.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index b35e7a64e..b0cb2849a 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -961,6 +961,14 @@ nvmf_rdma_connect(struct spdk_nvmf_transport *transport, struct rdma_cm_event *e return 0; } +static void +_nvmf_rdma_disconnect(void *ctx) +{ + struct spdk_nvmf_qpair *qpair = ctx; + + spdk_nvmf_qpair_disconnect(qpair, NULL, NULL); +} + static int nvmf_rdma_disconnect(struct rdma_cm_event *evt) { @@ -982,7 +990,7 @@ nvmf_rdma_disconnect(struct rdma_cm_event *evt) spdk_trace_record(TRACE_RDMA_QP_DISCONNECT, 0, 0, (uintptr_t)rqpair->cm_id, 0); spdk_nvmf_rdma_update_ibv_state(rqpair); - spdk_nvmf_qpair_disconnect(qpair, NULL, NULL); + spdk_thread_send_msg(qpair->group->thread, _nvmf_rdma_disconnect, qpair); return 0; }