From d76951c7bae14893f32769c085aeefc3799d25fc Mon Sep 17 00:00:00 2001 From: Jin Yu Date: Thu, 2 Jul 2020 22:39:32 +0800 Subject: [PATCH] nvme_rdma: fix the recvs_to_post.first to NULL nvme_rdma_qpair_submit_recvs is not judged in nvme_rdma_poll_group_process_completions path. If we do not clean the recvs_to_post.first we may get the wrong current_num_recvs when the rc is non-zero and call it again. Change-Id: If0046e711525dcfcb419132a01fed7a09db13ba0 Signed-off-by: Jin Yu Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3163 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Reviewed-by: Changpeng Liu Reviewed-by: Shuhei Matsumoto Reviewed-by: Aleksey Marchuk --- lib/nvme/nvme_rdma.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index 0f1ce4c21..1c8347717 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -667,7 +667,7 @@ static inline int nvme_rdma_qpair_submit_recvs(struct nvme_rdma_qpair *rqpair) { struct ibv_recv_wr *bad_recv_wr; - int rc; + int rc = 0; if (rqpair->recvs_to_post.first) { rc = ibv_post_recv(rqpair->rdma_qp->qp, rqpair->recvs_to_post.first, &bad_recv_wr); @@ -679,12 +679,11 @@ nvme_rdma_qpair_submit_recvs(struct nvme_rdma_qpair *rqpair) rqpair->current_num_recvs--; bad_recv_wr = bad_recv_wr->next; } - return rc; } rqpair->recvs_to_post.first = NULL; } - return 0; + return rc; } /* Append the given send wr structure to the qpair's outstanding sends list. */