From 41f8789ce4fa24a6700e82047831a53f7c67f4f3 Mon Sep 17 00:00:00 2001 From: Naresh Gottumukkala Date: Mon, 28 Dec 2020 07:17:19 +0000 Subject: [PATCH] nvmf/fc: Check if qpair is already disconnecting. Dont call spdk_nvmf_qpair_disconnect if qpair is already disconnecting. Signed-off-by: Naresh Gottumukkala Change-Id: Ie7032507775b6abdd178b534a636c5338ecc7d87 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5710 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris --- lib/nvmf/fc_ls.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/nvmf/fc_ls.c b/lib/nvmf/fc_ls.c index ea2d7e45c..2abaaa6ca 100644 --- a/lib/nvmf/fc_ls.c +++ b/lib/nvmf/fc_ls.c @@ -1505,10 +1505,12 @@ nvmf_fc_poller_conn_abort_done(void *hwqp, int32_t status, void *cb_args) SPDK_DEBUGLOG(nvmf_fc_poller_api, "Connection deleted, conn_id 0x%lx\n", fc_conn->conn_id); - if (!conn_args->backend_initiated) { + if (!conn_args->backend_initiated && (fc_conn->qpair.state != SPDK_NVMF_QPAIR_DEACTIVATING)) { /* disconnect qpair from nvmf controller */ spdk_nvmf_qpair_disconnect(&fc_conn->qpair, nvmf_fc_disconnect_qpair_cb, &conn_args->cb_info); + } else { + nvmf_fc_poller_api_perform_cb(&conn_args->cb_info, SPDK_NVMF_FC_POLLER_API_SUCCESS); } } else { /* @@ -1563,10 +1565,12 @@ nvmf_fc_poller_api_del_connection(void *arg) nvmf_fc_poller_del_conn_lookup_data(conn_args->hwqp, conn_args->fc_conn); hwqp->num_conns--; - if (!conn_args->backend_initiated) { + if (!conn_args->backend_initiated && (fc_conn->qpair.state != SPDK_NVMF_QPAIR_DEACTIVATING)) { /* disconnect qpair from nvmf controller */ spdk_nvmf_qpair_disconnect(&fc_conn->qpair, nvmf_fc_disconnect_qpair_cb, &conn_args->cb_info); + } else { + nvmf_fc_poller_api_perform_cb(&conn_args->cb_info, SPDK_NVMF_FC_POLLER_API_SUCCESS); } } }