From a19e5b4dae2c0b4371012c9ad7bd1a2db02fb167 Mon Sep 17 00:00:00 2001 From: Changpeng Liu Date: Tue, 15 Feb 2022 21:30:15 +0800 Subject: [PATCH] nvmf: add internal set Controller Fatal Status API Change-Id: I6a11962311433e2e1d98ec6b58a1734876857df9 Signed-off-by: Changpeng Liu Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11675 Community-CI: Broadcom CI Tested-by: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Aleksey Marchuk --- lib/nvmf/ctrlr.c | 10 ++++++++-- lib/nvmf/nvmf_internal.h | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/nvmf/ctrlr.c b/lib/nvmf/ctrlr.c index 725c5930b..4015b0ae8 100644 --- a/lib/nvmf/ctrlr.c +++ b/lib/nvmf/ctrlr.c @@ -198,7 +198,7 @@ nvmf_ctrlr_keep_alive_poll(void *ctx) ctrlr->hostnqn, ctrlr->subsys->subnqn); /* set the Controller Fatal Status bit to '1' */ if (ctrlr->vcprop.csts.bits.cfs == 0) { - ctrlr->vcprop.csts.bits.cfs = 1; + nvmf_ctrlr_set_fatal_status(ctrlr); /* * disconnect qpairs, terminate Transport connection @@ -974,7 +974,7 @@ _nvmf_ctrlr_cc_reset_shn_done(void *ctx) } else { /* controller fatal status */ SPDK_WARNLOG("IO timeout, ctrlr %p is in fatal status\n", ctrlr); - ctrlr->vcprop.csts.bits.cfs = 1; + nvmf_ctrlr_set_fatal_status(ctrlr); } } @@ -1056,6 +1056,12 @@ spdk_nvmf_ctrlr_get_regs(struct spdk_nvmf_ctrlr *ctrlr) return &ctrlr->vcprop; } +void +nvmf_ctrlr_set_fatal_status(struct spdk_nvmf_ctrlr *ctrlr) +{ + ctrlr->vcprop.csts.bits.cfs = 1; +} + static uint64_t nvmf_prop_get_cap(struct spdk_nvmf_ctrlr *ctrlr) { diff --git a/lib/nvmf/nvmf_internal.h b/lib/nvmf/nvmf_internal.h index e35f172fb..153a36ffd 100644 --- a/lib/nvmf/nvmf_internal.h +++ b/lib/nvmf/nvmf_internal.h @@ -496,6 +496,8 @@ void nvmf_qpair_free_aer(struct spdk_nvmf_qpair *qpair); int nvmf_ctrlr_abort_request(struct spdk_nvmf_request *req); +void nvmf_ctrlr_set_fatal_status(struct spdk_nvmf_ctrlr *ctrlr); + static inline struct spdk_nvmf_ns * _nvmf_subsystem_get_ns(struct spdk_nvmf_subsystem *subsystem, uint32_t nsid) {