From 33668b22548bfc6d1dbe999436b2d4ca7eb0e823 Mon Sep 17 00:00:00 2001 From: Seth Howell Date: Thu, 14 Mar 2019 13:21:29 -0700 Subject: [PATCH] rdma: change structure of drained_qpair to work w/ messages. This will become important later on. Change-Id: I94e5af03359e476afbc68664e43f44269ad5974c Signed-off-by: Seth Howell Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/448074 Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/nvmf/rdma.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index abe12edc6..e620d346e 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -2322,9 +2322,12 @@ spdk_nvmf_rdma_start_disconnect(struct spdk_nvmf_rdma_qpair *rqpair) } } -static void spdk_nvmf_rdma_destroy_drained_qpair(struct spdk_nvmf_rdma_qpair *rqpair, - struct spdk_nvmf_rdma_transport *rtransport) +static void nvmf_rdma_destroy_drained_qpair(void *ctx) { + struct spdk_nvmf_rdma_qpair *rqpair = ctx; + struct spdk_nvmf_rdma_transport *rtransport = SPDK_CONTAINEROF(rqpair->qpair.transport, + struct spdk_nvmf_rdma_transport, transport); + if (rqpair->current_send_depth == 0 && rqpair->current_recv_depth == rqpair->max_queue_depth) { /* The qpair has been drained. Free the resources. */ spdk_nvmf_rdma_qpair_process_pending(rtransport, rqpair, true); @@ -2963,7 +2966,7 @@ spdk_nvmf_rdma_poller_poll(struct spdk_nvmf_rdma_transport *rtransport, /* Disconnect the connection. */ spdk_nvmf_rdma_start_disconnect(rqpair); } else { - spdk_nvmf_rdma_destroy_drained_qpair(rqpair, rtransport); + nvmf_rdma_destroy_drained_qpair(rqpair); } continue; } @@ -3044,7 +3047,7 @@ spdk_nvmf_rdma_poller_poll(struct spdk_nvmf_rdma_transport *rtransport, } if (rqpair->qpair.state != SPDK_NVMF_QPAIR_ACTIVE) { - spdk_nvmf_rdma_destroy_drained_qpair(rqpair, rtransport); + nvmf_rdma_destroy_drained_qpair(rqpair); } }