Commit c7395a11 authored by JinYu's avatar JinYu Committed by Changpeng Liu
Browse files

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: default avatarJinYu <jin.yu@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/450726


Reviewed-by: default avatarZiye Yang <ziye.yang@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: default avatarSeth Howell <seth.howell5141@gmail.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent b62dca93
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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;
}