diff --git a/lib/nvme/nvme_ctrlr.c b/lib/nvme/nvme_ctrlr.c index 69cf545c9..25ab7fef0 100644 --- a/lib/nvme/nvme_ctrlr.c +++ b/lib/nvme/nvme_ctrlr.c @@ -869,6 +869,12 @@ nvme_ctrlr_fail(struct spdk_nvme_ctrlr *ctrlr, bool hot_remove) if (hot_remove) { ctrlr->is_removed = true; } + + if (ctrlr->is_failed) { + SPDK_NOTICELOG("ctrlr %s is already in failed state\n", ctrlr->trid.traddr); + return; + } + ctrlr->is_failed = true; nvme_transport_ctrlr_disconnect_qpair(ctrlr, ctrlr->adminq); SPDK_ERRLOG("ctrlr %s in failed state.\n", ctrlr->trid.traddr);