nvme_ctrlr: when reconnecting admin queue, check rc.
This was being ignored, and can cause some problems when trying to reset a defunt controller over a fabric. Change-Id: I32c11a0e2df0e140e20f870fe0fb5b9045a567b3 Signed-off-by: Seth Howell <seth.howell@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/469638 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
13fb1b690e
commit
fd892b333d
@ -994,7 +994,12 @@ spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr)
|
||||
nvme_qpair_complete_error_reqs(ctrlr->adminq);
|
||||
nvme_transport_qpair_abort_reqs(ctrlr->adminq, 0 /* retry */);
|
||||
nvme_transport_ctrlr_disconnect_qpair(ctrlr, ctrlr->adminq);
|
||||
nvme_transport_ctrlr_connect_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;
|
||||
}
|
||||
|
||||
/* Doorbell buffer config is invalid during reset */
|
||||
nvme_ctrlr_free_doorbell_buffer(ctrlr);
|
||||
@ -1021,6 +1026,7 @@ spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr)
|
||||
}
|
||||
}
|
||||
|
||||
out:
|
||||
ctrlr->is_resetting = false;
|
||||
|
||||
nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
|
||||
|
Loading…
Reference in New Issue
Block a user