diff options
Diffstat (limited to 'drivers/scsi/libfc/fc_fcp.c')
-rw-r--r-- | drivers/scsi/libfc/fc_fcp.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c index afb63c843144..4c41ee816f0b 100644 --- a/drivers/scsi/libfc/fc_fcp.c +++ b/drivers/scsi/libfc/fc_fcp.c | |||
@@ -2019,6 +2019,11 @@ int fc_eh_abort(struct scsi_cmnd *sc_cmd) | |||
2019 | struct fc_fcp_internal *si; | 2019 | struct fc_fcp_internal *si; |
2020 | int rc = FAILED; | 2020 | int rc = FAILED; |
2021 | unsigned long flags; | 2021 | unsigned long flags; |
2022 | int rval; | ||
2023 | |||
2024 | rval = fc_block_scsi_eh(sc_cmd); | ||
2025 | if (rval) | ||
2026 | return rval; | ||
2022 | 2027 | ||
2023 | lport = shost_priv(sc_cmd->device->host); | 2028 | lport = shost_priv(sc_cmd->device->host); |
2024 | if (lport->state != LPORT_ST_READY) | 2029 | if (lport->state != LPORT_ST_READY) |
@@ -2068,9 +2073,9 @@ int fc_eh_device_reset(struct scsi_cmnd *sc_cmd) | |||
2068 | int rc = FAILED; | 2073 | int rc = FAILED; |
2069 | int rval; | 2074 | int rval; |
2070 | 2075 | ||
2071 | rval = fc_remote_port_chkready(rport); | 2076 | rval = fc_block_scsi_eh(sc_cmd); |
2072 | if (rval) | 2077 | if (rval) |
2073 | goto out; | 2078 | return rval; |
2074 | 2079 | ||
2075 | lport = shost_priv(sc_cmd->device->host); | 2080 | lport = shost_priv(sc_cmd->device->host); |
2076 | 2081 | ||
@@ -2116,6 +2121,8 @@ int fc_eh_host_reset(struct scsi_cmnd *sc_cmd) | |||
2116 | 2121 | ||
2117 | FC_SCSI_DBG(lport, "Resetting host\n"); | 2122 | FC_SCSI_DBG(lport, "Resetting host\n"); |
2118 | 2123 | ||
2124 | fc_block_scsi_eh(sc_cmd); | ||
2125 | |||
2119 | lport->tt.lport_reset(lport); | 2126 | lport->tt.lport_reset(lport); |
2120 | wait_tmo = jiffies + FC_HOST_RESET_TIMEOUT; | 2127 | wait_tmo = jiffies + FC_HOST_RESET_TIMEOUT; |
2121 | while (!fc_fcp_lport_queue_ready(lport) && time_before(jiffies, | 2128 | while (!fc_fcp_lport_queue_ready(lport) && time_before(jiffies, |