From 78a11548da9400dd52bf6d4b3fd9591e66c6b7c0 Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Fri, 4 Oct 2019 09:58:18 -0700 Subject: [PATCH] nvmf/tcp: Move duplicated disconnect code to a function Change-Id: Ib3daec83ec518a0934911e04d771c19cb34b6167 Signed-off-by: Ben Walker Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/470529 Tested-by: SPDK CI Jenkins Community-CI: Broadcom SPDK FC-NVMe CI Reviewed-by: Paul Luse Reviewed-by: Alexey Marchuk Reviewed-by: Ziye Yang Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris --- lib/nvmf/tcp.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/nvmf/tcp.c b/lib/nvmf/tcp.c index 8a8849b63..2a8da9d1d 100644 --- a/lib/nvmf/tcp.c +++ b/lib/nvmf/tcp.c @@ -890,6 +890,17 @@ spdk_nvmf_tcp_qpair_flush_pdus(void *_tqpair) return -1; } +static void +spdk_nvmf_tcp_qpair_disconnect(struct spdk_nvmf_tcp_qpair *tqpair) +{ + SPDK_DEBUGLOG(SPDK_LOG_NVMF_TCP, "Disconnecting qpair %p\n", tqpair); + + tqpair->state = NVME_TCP_QPAIR_STATE_EXITED; + spdk_nvmf_tcp_qpair_flush_pdus(tqpair); + spdk_poller_unregister(&tqpair->timeout_poller); + spdk_nvmf_qpair_disconnect(&tqpair->qpair, NULL, NULL); +} + static void spdk_nvmf_tcp_qpair_write_pdu(struct spdk_nvmf_tcp_qpair *tqpair, struct nvme_tcp_pdu *pdu, @@ -1287,11 +1298,8 @@ spdk_nvmf_tcp_qpair_handle_timeout(void *ctx) SPDK_ERRLOG("No pdu coming for tqpair=%p within %d seconds\n", tqpair, SPDK_NVME_TCP_QPAIR_EXIT_TIMEOUT); - tqpair->state = NVME_TCP_QPAIR_STATE_EXITED; - SPDK_DEBUGLOG(SPDK_LOG_NVMF_TCP, "will disconect the tqpair=%p\n", tqpair); - spdk_poller_unregister(&tqpair->timeout_poller); - spdk_nvmf_qpair_disconnect(&tqpair->qpair, NULL, NULL); + spdk_nvmf_tcp_qpair_disconnect(tqpair); return 0; } @@ -2652,11 +2660,7 @@ spdk_nvmf_tcp_sock_cb(void *arg, struct spdk_sock_group *group, struct spdk_sock * State of tqpair: The tqpair is in EXITING state due to internal error */ if ((rc < 0) || (tqpair->state == NVME_TCP_QPAIR_STATE_EXITING)) { - tqpair->state = NVME_TCP_QPAIR_STATE_EXITED; - spdk_nvmf_tcp_qpair_flush_pdus(tqpair); - SPDK_DEBUGLOG(SPDK_LOG_NVMF_TCP, "will disconect the tqpair=%p\n", tqpair); - spdk_poller_unregister(&tqpair->timeout_poller); - spdk_nvmf_qpair_disconnect(&tqpair->qpair, NULL, NULL); + spdk_nvmf_tcp_qpair_disconnect(tqpair); } }