diff options
Diffstat (limited to 'drivers/scsi/fnic/fnic_scsi.c')
| -rw-r--r-- | drivers/scsi/fnic/fnic_scsi.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/scsi/fnic/fnic_scsi.c b/drivers/scsi/fnic/fnic_scsi.c index 2097de42a147..155b286f1a9d 100644 --- a/drivers/scsi/fnic/fnic_scsi.c +++ b/drivers/scsi/fnic/fnic_scsi.c | |||
| @@ -1892,6 +1892,21 @@ int fnic_abort_cmd(struct scsi_cmnd *sc) | |||
| 1892 | goto fnic_abort_cmd_end; | 1892 | goto fnic_abort_cmd_end; |
| 1893 | } | 1893 | } |
| 1894 | 1894 | ||
| 1895 | /* IO out of order */ | ||
| 1896 | |||
| 1897 | if (!(CMD_FLAGS(sc) & (FNIC_IO_ABORTED | FNIC_IO_DONE))) { | ||
| 1898 | spin_unlock_irqrestore(io_lock, flags); | ||
| 1899 | FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, | ||
| 1900 | "Issuing Host reset due to out of order IO\n"); | ||
| 1901 | |||
| 1902 | if (fnic_host_reset(sc) == FAILED) { | ||
| 1903 | FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, | ||
| 1904 | "fnic_host_reset failed.\n"); | ||
| 1905 | } | ||
| 1906 | ret = FAILED; | ||
| 1907 | goto fnic_abort_cmd_end; | ||
| 1908 | } | ||
| 1909 | |||
| 1895 | CMD_STATE(sc) = FNIC_IOREQ_ABTS_COMPLETE; | 1910 | CMD_STATE(sc) = FNIC_IOREQ_ABTS_COMPLETE; |
| 1896 | 1911 | ||
| 1897 | /* | 1912 | /* |
