From 91b9b4b2a1544ce1f649de09886a56e0b6f5af69 Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Wed, 24 Oct 2018 12:12:23 -0700 Subject: [PATCH] nvmf: Simplify qpair states When we thought we could do error recovery we differentiated between inactive and erro states. However, that's not possible so collapse them back into one. Change-Id: I57622c400378f2d4c518efbc12fb52e665a9ba4c Signed-off-by: Ben Walker Reviewed-on: https://review.gerrithub.io/430627 Tested-by: SPDK CI Jenkins Chandler-Test-Pool: SPDK Automated Test System Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Reviewed-by: Seth Howell --- lib/nvmf/nvmf.c | 7 +++---- lib/nvmf/nvmf_internal.h | 1 - 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/nvmf/nvmf.c b/lib/nvmf/nvmf.c index 32539f531..9ff9f31f3 100644 --- a/lib/nvmf/nvmf.c +++ b/lib/nvmf/nvmf.c @@ -700,7 +700,7 @@ spdk_nvmf_poll_group_add(struct spdk_nvmf_poll_group *group, if (rc == 0) { spdk_nvmf_qpair_set_state(qpair, SPDK_NVMF_QPAIR_ACTIVE); } else { - spdk_nvmf_qpair_set_state(qpair, SPDK_NVMF_QPAIR_INACTIVE); + spdk_nvmf_qpair_set_state(qpair, SPDK_NVMF_QPAIR_ERROR); } return rc; @@ -743,7 +743,7 @@ _spdk_nvmf_qpair_destroy(void *ctx, int status) struct spdk_nvmf_ctrlr *ctrlr = qpair->ctrlr; assert(qpair->state == SPDK_NVMF_QPAIR_DEACTIVATING); - spdk_nvmf_qpair_set_state(qpair, SPDK_NVMF_QPAIR_INACTIVE); + spdk_nvmf_qpair_set_state(qpair, SPDK_NVMF_QPAIR_ERROR); qpair_ctx->qid = qpair->qid; TAILQ_REMOVE(&qpair->group->qpairs, qpair, link); @@ -781,8 +781,7 @@ spdk_nvmf_qpair_disconnect(struct spdk_nvmf_qpair *qpair, nvmf_qpair_disconnect_ /* The queue pair must be disconnected from the thread that owns it */ assert(qpair->group->thread == spdk_get_thread()); - if (qpair->state == SPDK_NVMF_QPAIR_DEACTIVATING || - qpair->state == SPDK_NVMF_QPAIR_INACTIVE) { + if (qpair->state != SPDK_NVMF_QPAIR_ACTIVE) { /* This can occur if the connection is killed by the target, * which results in a notification that the connection * died. Send a message to defer the processing of this diff --git a/lib/nvmf/nvmf_internal.h b/lib/nvmf/nvmf_internal.h index c9c7bf366..1f7be7ec0 100644 --- a/lib/nvmf/nvmf_internal.h +++ b/lib/nvmf/nvmf_internal.h @@ -59,7 +59,6 @@ enum spdk_nvmf_subsystem_state { enum spdk_nvmf_qpair_state { SPDK_NVMF_QPAIR_UNINITIALIZED = 0, - SPDK_NVMF_QPAIR_INACTIVE, SPDK_NVMF_QPAIR_ACTIVATING, SPDK_NVMF_QPAIR_ACTIVE, SPDK_NVMF_QPAIR_DEACTIVATING,