Commit 30920066 authored by Seth Howell's avatar Seth Howell Committed by Tomasz Zawadzki
Browse files

lib/nvme: pass up rc from failed connect in reset.



Signed-off-by: default avatarSeth Howell <seth.howell@intel.com>
Change-Id: I8041728de7bb7bdb35fb1570f3c2fb20feef8664
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3877


Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
parent 316f92d1
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -1194,7 +1194,7 @@ nvme_ctrlr_abort_queued_aborts(struct spdk_nvme_ctrlr *ctrlr)
int
spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr)
{
	int rc = 0;
	int rc = 0, rc_tmp = 0;
	struct spdk_nvme_qpair	*qpair;

	nvme_robust_mutex_lock(&ctrlr->ctrlr_lock);
@@ -1226,9 +1226,9 @@ spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr)

	ctrlr->adminq->transport_failure_reason = SPDK_NVME_QPAIR_FAILURE_LOCAL;
	nvme_transport_ctrlr_disconnect_qpair(ctrlr, ctrlr->adminq);
	if (nvme_transport_ctrlr_connect_qpair(ctrlr, ctrlr->adminq) != 0) {
	rc = nvme_transport_ctrlr_connect_qpair(ctrlr, ctrlr->adminq);
	if (rc != 0) {
		SPDK_ERRLOG("Controller reinitialization failed.\n");
		rc = -1;
		goto out;
	}

@@ -1257,9 +1257,10 @@ spdk_nvme_ctrlr_reset(struct spdk_nvme_ctrlr *ctrlr)
	if (rc == 0 && ctrlr->trid.trtype == SPDK_NVME_TRANSPORT_PCIE) {
		/* Reinitialize qpairs */
		TAILQ_FOREACH(qpair, &ctrlr->active_io_qpairs, tailq) {
			if (nvme_transport_ctrlr_connect_qpair(ctrlr, qpair) != 0) {
			rc_tmp = nvme_transport_ctrlr_connect_qpair(ctrlr, qpair);
			if (rc_tmp != 0) {
				rc = rc_tmp;
				qpair->transport_failure_reason = SPDK_NVME_QPAIR_FAILURE_LOCAL;
				rc = -1;
				continue;
			}
		}