From c7395a117135bdbebf72dda8b1b10aeabdc7d1f9 Mon Sep 17 00:00:00 2001 From: JinYu Date: Wed, 10 Apr 2019 22:36:05 +0800 Subject: [PATCH] nvmf: fix the rqpair->current_send_depth If rsp->status.sc != SUCCESS and xfer == DATA_CONTROLLER_TO_HOST, We would not send the data WR, so clean the num_outstanding_data_wr. Fix #728 Change-Id: I32259788e495ed76f8f02a9d871bd56356d93dc4 Signed-off-by: JinYu Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/450726 Reviewed-by: Ziye Yang Reviewed-by: Changpeng Liu Reviewed-by: Shuhei Matsumoto Reviewed-by: Seth Howell Reviewed-by: Ben Walker Tested-by: SPDK CI Jenkins --- lib/nvmf/rdma.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index b76301e91..725ee4852 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -1045,6 +1045,7 @@ static int request_transfer_out(struct spdk_nvmf_request *req, int *data_posted) { int rc; + int num_outstanding_data_wr = 0; struct spdk_nvmf_rdma_request *rdma_req; struct spdk_nvmf_qpair *qpair; struct spdk_nvmf_rdma_qpair *rqpair; @@ -1096,6 +1097,7 @@ request_transfer_out(struct spdk_nvmf_request *req, int *data_posted) SPDK_DEBUGLOG(SPDK_LOG_RDMA, "RDMA WRITE POSTED. Request: %p Connection: %p\n", req, qpair); send_wr = &rdma_req->data.wr; *data_posted = 1; + num_outstanding_data_wr = rdma_req->num_outstanding_data_wr; } SPDK_DEBUGLOG(SPDK_LOG_RDMA, "RDMA SEND POSTED. Request: %p Connection: %p\n", req, qpair); @@ -1107,7 +1109,7 @@ request_transfer_out(struct spdk_nvmf_request *req, int *data_posted) return rc; } /* +1 for the rsp wr */ - rqpair->current_send_depth += rdma_req->num_outstanding_data_wr + 1; + rqpair->current_send_depth += num_outstanding_data_wr + 1; return 0; }