summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLong Li <longli@microsoft.com>2017-06-13 23:34:05 +0200
committerMartin K. Petersen <martin.petersen@oracle.com>2017-06-26 18:33:26 +0200
commit3930d7309807ba0bfa460dfa9ed68d5560347dd2 (patch)
tree85df0f5d290478884fbbb6cd858d00bb8adc9c98
parentscsi: aacraid: fix leak of data from stack back to userspace (diff)
downloadlinux-3930d7309807ba0bfa460dfa9ed68d5560347dd2.tar.xz
linux-3930d7309807ba0bfa460dfa9ed68d5560347dd2.zip
scsi: storvsc: use default I/O timeout handler for FC devices
FC disks issue I/O directly to the host storage port driver, this is diffirent to VHD disks where I/O is virtualized and timeout is handled by the host VSP (Virtualization Service Provider). FC disks are usually setup in a multipath system, and they don't want to reset timer on I/O timeout. Timeout is detected by multipath as a good time to failover and recover. Signed-off-by: Long Li <longli@microsoft.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/scsi/storvsc_drv.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index 8d955db6424f..3cc8d67783a1 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -1495,6 +1495,10 @@ static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd)
*/
static enum blk_eh_timer_return storvsc_eh_timed_out(struct scsi_cmnd *scmnd)
{
+#if IS_ENABLED(CONFIG_SCSI_FC_ATTRS)
+ if (scmnd->device->host->transportt == fc_transport_template)
+ return fc_eh_timed_out(scmnd);
+#endif
return BLK_EH_RESET_TIMER;
}