nvme: don't fail the ctrlr in nvme_ctrlr_reset
This paves the way for doing multiple reconnect attempts before failing the controller. Change-Id: I1ff4ee6d41a5ffb47dd186d76793d670287c4783 Signed-off-by: Seth Howell <seth.howell@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/469934 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Alexey Marchuk <alexeymar@mellanox.com> Reviewed-by: Paul Luse <paul.e.luse@intel.com> Reviewed-by: John Kariuki <John.K.Kariuki@intel.com>
This commit is contained in:
parent
4dd94a25a3
commit
2476a74550
@ -996,7 +996,6 @@ nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr)
|
||||
nvme_transport_ctrlr_disconnect_qpair(ctrlr, ctrlr->adminq);
|
||||
if (nvme_transport_ctrlr_connect_qpair(ctrlr, ctrlr->adminq) != 0) {
|
||||
SPDK_ERRLOG("Controller reinitialization failed.\n");
|
||||
nvme_ctrlr_fail(ctrlr, false);
|
||||
rc = -1;
|
||||
goto out;
|
||||
}
|
||||
@ -1010,17 +1009,15 @@ nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr)
|
||||
while (ctrlr->state != NVME_CTRLR_STATE_READY) {
|
||||
if (nvme_ctrlr_process_init(ctrlr) != 0) {
|
||||
SPDK_ERRLOG("controller reinitialization failed\n");
|
||||
nvme_ctrlr_fail(ctrlr, false);
|
||||
rc = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!ctrlr->is_failed) {
|
||||
if (rc == 0) {
|
||||
/* Reinitialize qpairs */
|
||||
TAILQ_FOREACH(qpair, &ctrlr->active_io_qpairs, tailq) {
|
||||
if (nvme_transport_ctrlr_connect_qpair(ctrlr, qpair) != 0) {
|
||||
nvme_ctrlr_fail(ctrlr, false);
|
||||
rc = -1;
|
||||
}
|
||||
}
|
||||
@ -1037,7 +1034,12 @@ out:
|
||||
int
|
||||
spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr)
|
||||
{
|
||||
return nvme_ctrlr_reset(ctrlr);
|
||||
if (nvme_ctrlr_reset(ctrlr) != 0) {
|
||||
nvme_ctrlr_fail(ctrlr, false);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user