[PATCH 09/11] drivers: scsi: storvsc: Correctly handle TEST_UNIT_READY failure

Andy Whitcroft apw at canonical.com
Wed Sep 24 09:00:45 UTC 2014


From: "K. Y. Srinivasan" <kys at microsoft.com>

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 at microsoft.com>
Reviewed-by: Hannes Reinecke <hare at suse.de>
Cc: <stable at vger.kernel.org>
Signed-off-by: Christoph Hellwig <hch at lst.de>

(cherry picked from commit 3533f8603d28b77c62d75ec899449a99bc6b77a1)
BugLink: http://bugs.launchpad.net/bugs/1354397
Signed-off-by: Andy Whitcroft <apw at canonical.com>
---
 drivers/scsi/storvsc_drv.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index b529ae8..ed0f899 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);
 		}
-- 
1.9.1





More information about the kernel-team mailing list