From 05805e54a01edb72b5e7e03598c02b6b70f3f509 Mon Sep 17 00:00:00 2001 From: Jin Yu Date: Wed, 1 Jul 2020 18:28:22 +0800 Subject: [PATCH] nvme:disconnected state then destroying state Put the destroying state after the disconnected state. Because nvme_transport_ctrlr_disconnect_qpair will modify the state of qpair to disconnected, and in the path of rdma, it will postpone the deletion of qpair until the release of pg by judging the destroying state. So qpair is not deleted. Change-Id: Ica606905cddf67d0ffda14bd48cc5f4e424f01ee Signed-off-by: Jin Yu Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3136 Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Reviewed-by: Changpeng Liu Reviewed-by: Shuhei Matsumoto Reviewed-by: Aleksey Marchuk --- lib/nvme/nvme_rdma.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c index 7abbabb3f..0f1ce4c21 100644 --- a/lib/nvme/nvme_rdma.c +++ b/lib/nvme/nvme_rdma.c @@ -1863,6 +1863,7 @@ nvme_rdma_ctrlr_delete_io_qpair(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme_ rqpair = nvme_rdma_qpair(qpair); nvme_transport_ctrlr_disconnect_qpair(ctrlr, qpair); if (rqpair->defer_deletion_to_pg) { + nvme_qpair_set_state(qpair, NVME_QPAIR_DESTROYING); return 0; }