From 0acac18cfa52d47878df72b0a6d5a57f9280d346 Mon Sep 17 00:00:00 2001 From: Alexey Marchuk Date: Thu, 9 Apr 2020 13:14:41 +0300 Subject: [PATCH] nvme/rdma: Clean pointer to nvme_request That is done to make sure that scenario described in github issue #1292 won't happen Signed-off-by: Alexey Marchuk Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1771 (master) (cherry picked from commit f11989385ea5b18a336731805f2add6992bf581c) Change-Id: Ie2ad001da701e25ef984ae57da850fb84d51b734 Signed-off-by: Tomasz Zawadzki Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2641 Reviewed-by: Jim Harris Reviewed-by: Ben Walker Reviewed-by: Aleksey Marchuk --- lib/nvme/nvme_rdma.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index 0abb51e7b..cd70d0f9c 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -255,6 +255,7 @@ static void nvme_rdma_req_put(struct nvme_rdma_qpair *rqpair, struct spdk_nvme_rdma_req *rdma_req) { rdma_req->completion_flags = 0; + rdma_req->req = NULL; TAILQ_REMOVE(&rqpair->outstanding_reqs, rdma_req, link); TAILQ_INSERT_HEAD(&rqpair->free_reqs, rdma_req, link); } @@ -1499,6 +1500,7 @@ nvme_rdma_req_init(struct nvme_rdma_qpair *rqpair, struct nvme_request *req, struct spdk_nvme_ctrlr *ctrlr = rqpair->qpair.ctrlr; int rc; + assert(rdma_req->req == NULL); rdma_req->req = req; req->cmd.cid = rdma_req->id;