From: Rob Evers <revers@redhat.com> Date: Mon, 4 Jan 2010 22:51:42 -0500 Subject: [scsi] lpfc: Blocked all SCSI I/O requests from midlayer Message-id: <20100104225149.24386.2788.sendpatchset@localhost.localdomain> Patchwork-id: 22296 O-Subject: [RHEL5.5 PATCH 4/18] Blocked all SCSI I/O requests from midlayer until target rediscovery during EEH (CR: 95889) Bugzilla: 549763 RH-Acked-by: Tomas Henzl <thenzl@redhat.com> RH-Acked-by: Mike Christie <mchristi@redhat.com> https://bugzilla.redhat.com/show_bug.cgi?id=549763 Blocked all SCSI I/O requests from midlayer until target rediscovery during EEH (CR: 95889) Signed-off-by: Jarod Wilson <jarod@redhat.com> diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index fb8d66e..92f6aa8 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -7325,8 +7325,6 @@ lpfc_prep_dev_for_perm_failure(struct lpfc_hba *phba) { lpfc_printf_log(phba, KERN_ERR, LOG_INIT, "2711 PCI channel permanent disable for failure\n"); - /* Block all SCSI devices' I/Os on the host */ - lpfc_scsi_dev_block(phba); /* Clean up all driver's outstanding SCSI I/Os */ lpfc_sli_flush_fcp_rings(phba); } @@ -7355,6 +7353,9 @@ lpfc_io_error_detected_s3(struct pci_dev *pdev, pci_channel_state_t state) struct Scsi_Host *shost = pci_get_drvdata(pdev); struct lpfc_hba *phba = ((struct lpfc_vport *)shost->hostdata)->phba; + /* Block all SCSI devices' I/Os on the host */ + lpfc_scsi_dev_block(phba); + /* stop all timers */ lpfc_stop_hba_timers(phba);