Blame SOURCES/0111-scsi-scsi-qla2xxx-Allow-NVMe-IO-to-resume-with-short.patch

3c6e85
From 2a6ba2926dce7aa598e3800f6395a51ea5ca3cea Mon Sep 17 00:00:00 2001
3c6e85
From: Himanshu Madhani <hmadhani@redhat.com>
3c6e85
Date: Thu, 1 Aug 2019 15:56:11 -0400
3c6e85
Subject: [PATCH 111/124] [scsi] scsi: qla2xxx: Allow NVMe IO to resume with
3c6e85
 short cable pull
3c6e85
3c6e85
Message-id: <20190801155618.12650-112-hmadhani@redhat.com>
3c6e85
Patchwork-id: 267897
3c6e85
O-Subject: [RHEL 7.8 e-stor PATCH 111/118] scsi: qla2xxx: Allow NVMe IO to resume with short cable pull
3c6e85
Bugzilla: 1729270
3c6e85
RH-Acked-by: Jarod Wilson <jarod@redhat.com>
3c6e85
RH-Acked-by: Tony Camuso <tcamuso@redhat.com>
3c6e85
3c6e85
From: Quinn Tran <qutran@marvell.com>
3c6e85
3c6e85
Bugzilla 1729270
3c6e85
3c6e85
Current driver report dev_loss_tmo to 0 for NVMe devices with short cable
3c6e85
pull.  This causes NVMe controller to be freed along with NVMe namespace.
3c6e85
The side affect is IO would stop.  By not setting dev_loss_tmo to 0, NVMe
3c6e85
namespace would stay until cable is plugged back in.  This allows IO to
3c6e85
resume afterward.
3c6e85
3c6e85
[mkp: commit desc]
3c6e85
3c6e85
Signed-off-by: Arun Easi <aeasi@marvell.com>
3c6e85
Signed-off-by: Quinn Tran <qutran@marvell.com>
3c6e85
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
3c6e85
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
3c6e85
(cherry picked from commit 727e9a39a33b1547e4b2091dd79b5596de451810)
3c6e85
Signed-off-by: Himanshu Madhani <hmadhani@redhat.com>
3c6e85
Signed-off-by: Jan Stancek <jstancek@redhat.com>
3c6e85
---
3c6e85
 drivers/scsi/qla2xxx/qla_nvme.c | 4 +++-
3c6e85
 1 file changed, 3 insertions(+), 1 deletion(-)
3c6e85
3c6e85
diff --git a/drivers/scsi/qla2xxx/qla_nvme.c b/drivers/scsi/qla2xxx/qla_nvme.c
3c6e85
index 74fbe38eaae2..ad406511f2ec 100644
3c6e85
--- a/drivers/scsi/qla2xxx/qla_nvme.c
3c6e85
+++ b/drivers/scsi/qla2xxx/qla_nvme.c
3c6e85
@@ -671,7 +671,9 @@ void qla_nvme_unregister_remote_port(struct fc_port *fcport)
3c6e85
 	    "%s: unregister remoteport on %p %8phN\n",
3c6e85
 	    __func__, fcport, fcport->port_name);
3c6e85
 
3c6e85
-	nvme_fc_set_remoteport_devloss(fcport->nvme_remote_port, 0);
3c6e85
+	if (test_bit(PFLG_DRIVER_REMOVING, &fcport->vha->pci_flags))
3c6e85
+		nvme_fc_set_remoteport_devloss(fcport->nvme_remote_port, 0);
3c6e85
+
3c6e85
 	init_completion(&fcport->nvme_del_done);
3c6e85
 	ret = nvme_fc_unregister_remoteport(fcport->nvme_remote_port);
3c6e85
 	if (ret)
3c6e85
-- 
3c6e85
2.13.6
3c6e85