From af61ab90c70c89e4f13fb4c1d01337b4da2753b6 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Wed, 29 Apr 2020 21:20:56 +0900 Subject: [PATCH] nvmf/rdma: Skip the state DATA_TRANSFER_TO_HOST_PENDING when the I/O failed Signed-off-by: Shuhei Matsumoto Change-Id: I0036e38004bb0a1afc22d67d347dcd33a61eb0a3 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2134 Community-CI: Mellanox Build Bot Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Michael Haeuptle Reviewed-by: Ben Walker --- lib/nvmf/rdma.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/nvmf/rdma.c b/lib/nvmf/rdma.c index b845d6b9e..00311e0bb 100644 --- a/lib/nvmf/rdma.c +++ b/lib/nvmf/rdma.c @@ -2104,7 +2104,8 @@ nvmf_rdma_request_process(struct spdk_nvmf_rdma_transport *rtransport, case RDMA_REQUEST_STATE_EXECUTED: spdk_trace_record(TRACE_RDMA_REQUEST_STATE_EXECUTED, 0, 0, (uintptr_t)rdma_req, (uintptr_t)rqpair->cm_id); - if (rdma_req->req.xfer == SPDK_NVME_DATA_CONTROLLER_TO_HOST) { + if (rsp->status.sc == SPDK_NVME_SC_SUCCESS && + rdma_req->req.xfer == SPDK_NVME_DATA_CONTROLLER_TO_HOST) { STAILQ_INSERT_TAIL(&rqpair->pending_rdma_write_queue, rdma_req, state_link); rdma_req->state = RDMA_REQUEST_STATE_DATA_TRANSFER_TO_HOST_PENDING; } else {