From 4dd94a25a3ec4bed9c8382ed0b868a60f0e241ed Mon Sep 17 00:00:00 2001 From: Seth Howell Date: Mon, 30 Sep 2019 11:09:08 -0700 Subject: [PATCH] nvme: move spdk_nvme_ctrlr_reset. By moving the contents of spdk_nvme_ctrlr_reset to a new internal function, I am paving the way for providing two reset paths. One, which can be used by the user as an external API function and which provides the same legacy behavior. Specifically, that it will always fail the ctrlr after an attempted reset, and a second, internal path, which will be used by the qpair reconnect code which will defer failing the qpair to the qpair code. Change-Id: I9ec9df55c1fecc2f00476c175bcf988207c31257 Signed-off-by: Seth Howell Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/469933 Tested-by: SPDK CI Jenkins Reviewed-by: Paul Luse Reviewed-by: Alexey Marchuk Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/nvme/nvme_ctrlr.c | 8 +++++++- lib/nvme/nvme_internal.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/nvme/nvme_ctrlr.c b/lib/nvme/nvme_ctrlr.c index 24ba487f9..05891280f 100644 --- a/lib/nvme/nvme_ctrlr.c +++ b/lib/nvme/nvme_ctrlr.c @@ -954,7 +954,7 @@ error: } int -spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr) +nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr) { int rc = 0; struct spdk_nvme_qpair *qpair; @@ -1034,6 +1034,12 @@ out: return rc; } +int +spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr) +{ + return nvme_ctrlr_reset(ctrlr); +} + static void nvme_ctrlr_identify_done(void *arg, const struct spdk_nvme_cpl *cpl) { diff --git a/lib/nvme/nvme_internal.h b/lib/nvme/nvme_internal.h index cbd6c0f74..b6138118c 100644 --- a/lib/nvme/nvme_internal.h +++ b/lib/nvme/nvme_internal.h @@ -827,6 +827,7 @@ int nvme_ctrlr_construct(struct spdk_nvme_ctrlr *ctrlr); void nvme_ctrlr_destruct_finish(struct spdk_nvme_ctrlr *ctrlr); void nvme_ctrlr_destruct(struct spdk_nvme_ctrlr *ctrlr); void nvme_ctrlr_fail(struct spdk_nvme_ctrlr *ctrlr, bool hot_remove); +int nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr); int nvme_ctrlr_process_init(struct spdk_nvme_ctrlr *ctrlr); void nvme_ctrlr_connected(struct spdk_nvme_probe_ctx *probe_ctx, struct spdk_nvme_ctrlr *ctrlr);