diff options
author | K. Y. Srinivasan <kys@microsoft.com> | 2014-07-12 20:48:32 +0400 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-07-26 01:17:03 +0400 |
commit | 3533f8603d28b77c62d75ec899449a99bc6b77a1 (patch) | |
tree | e69e5ac2372eb84d739323eb7b1a8e4be31ccdbf /drivers | |
parent | f885fb73f64154690c2158e813de56363389ffec (diff) | |
download | linux-3533f8603d28b77c62d75ec899449a99bc6b77a1.tar.xz |
drivers: scsi: storvsc: Correctly handle TEST_UNIT_READY failure
On some Windows hosts on FC SANs, TEST_UNIT_READY can return SRB_STATUS_ERROR.
Correctly handle this. Note that there is sufficient sense information to
support scsi error handling even in this case.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/storvsc_drv.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index b529ae8e8fff..ed0f899e8aa5 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -1018,6 +1018,13 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb, case ATA_12: set_host_byte(scmnd, DID_PASSTHROUGH); break; + /* + * On Some Windows hosts TEST_UNIT_READY command can return + * SRB_STATUS_ERROR, let the upper level code deal with it + * based on the sense information. + */ + case TEST_UNIT_READY: + break; default: set_host_byte(scmnd, DID_TARGET_FAILURE); } |