From 13a887f1e266c2450928287036f6a4bfcc072471 Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Tue, 31 Jul 2018 14:39:16 -0700 Subject: [PATCH] nvmf/rdma: Simplify spdk_nvmf_rdma_qp_drained This was the only call point of two very small static functions, so merge them into the main body. Change-Id: Ifdd3355ffd500ac5ad4fcf69feace65b35132906 Signed-off-by: Ben Walker Reviewed-on: https://review.gerrithub.io/420935 Chandler-Test-Pool: SPDK Automated Test System Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto Reviewed-by: Changpeng Liu Reviewed-by: Seth Howell Reviewed-by: Jim Harris --- lib/nvmf/rdma.c | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index cfd32b07f..bb4244c49 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -2003,37 +2003,29 @@ spdk_nvmf_rdma_drain_state_queue(struct spdk_nvmf_rdma_qpair *rqpair, } } -static void spdk_nvmf_rdma_drain_rw_reqs(struct spdk_nvmf_rdma_qpair *rqpair) -{ - spdk_nvmf_rdma_drain_state_queue(rqpair, RDMA_REQUEST_STATE_TRANSFERRING_HOST_TO_CONTROLLER); - spdk_nvmf_rdma_drain_state_queue(rqpair, RDMA_REQUEST_STATE_TRANSFERRING_CONTROLLER_TO_HOST); - spdk_nvmf_rdma_drain_state_queue(rqpair, RDMA_REQUEST_STATE_COMPLETING); -} - -static void spdk_nvmf_rdma_drain_pending_reqs(struct spdk_nvmf_rdma_qpair *rqpair) -{ - struct spdk_nvmf_rdma_request *rdma_req, *req_tmp; - - spdk_nvmf_rdma_drain_state_queue(rqpair, RDMA_REQUEST_STATE_DATA_TRANSFER_PENDING); - /* First wipe the requests waiting for buffer from the global list */ - TAILQ_FOREACH_SAFE(rdma_req, &rqpair->state_queue[RDMA_REQUEST_STATE_NEED_BUFFER], link, req_tmp) { - TAILQ_REMOVE(&rqpair->ch->pending_data_buf_queue, rdma_req, link); - } - /* Then drain the requests through the rdma queue */ - spdk_nvmf_rdma_drain_state_queue(rqpair, RDMA_REQUEST_STATE_NEED_BUFFER); -} - static void spdk_nvmf_rdma_qp_drained(struct spdk_nvmf_rdma_qpair *rqpair) { + struct spdk_nvmf_rdma_request *rdma_req, *req_tmp; + SPDK_NOTICELOG("IBV QP#%u drained\n", rqpair->qpair.qid); if (spdk_nvmf_qpair_is_admin_queue(&rqpair->qpair)) { spdk_nvmf_ctrlr_abort_aer(rqpair->qpair.ctrlr); } - spdk_nvmf_rdma_drain_pending_reqs(rqpair); - spdk_nvmf_rdma_drain_rw_reqs(rqpair); + spdk_nvmf_rdma_drain_state_queue(rqpair, RDMA_REQUEST_STATE_DATA_TRANSFER_PENDING); + + /* First wipe the requests waiting for buffer from the global list */ + TAILQ_FOREACH_SAFE(rdma_req, &rqpair->state_queue[RDMA_REQUEST_STATE_NEED_BUFFER], link, req_tmp) { + TAILQ_REMOVE(&rqpair->ch->pending_data_buf_queue, rdma_req, link); + } + /* Then drain the requests through the rdma queue */ + spdk_nvmf_rdma_drain_state_queue(rqpair, RDMA_REQUEST_STATE_NEED_BUFFER); + + spdk_nvmf_rdma_drain_state_queue(rqpair, RDMA_REQUEST_STATE_TRANSFERRING_HOST_TO_CONTROLLER); + spdk_nvmf_rdma_drain_state_queue(rqpair, RDMA_REQUEST_STATE_TRANSFERRING_CONTROLLER_TO_HOST); + spdk_nvmf_rdma_drain_state_queue(rqpair, RDMA_REQUEST_STATE_COMPLETING); if (!spdk_nvmf_rdma_qpair_is_idle(&rqpair->qpair)) { /* There must be outstanding requests down to media.