[SCSI] storvsc: Properly handle errors from the host
authorK. Y. Srinivasan <kys@microsoft.com>
Thu, 5 Apr 2012 19:26:52 +0000 (12:26 -0700)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 25 Apr 2012 08:51:43 +0000 (09:51 +0100)
commit42e22cac4e57f3e0b4b631c9489effe97f7d7d6c
treec5b2767d0b8c2ef2c6f043f387c10b293360376a
parentc62eef0d1b592cfbe4793173e8af4098b13e4455
[SCSI] storvsc: Properly handle errors from the host

Hyper-V cannot process some commands like ATA_12 and ATA_16. It also returns a
very generic error when this happens (SRB_STATUS_ERROR).  Most of the time we
treat SRB_STATUS_ERROR as DID_TARGET_FAILURE which causes error handler retry,
but in the case of pass through commands, they'll never succeed (and the error
handler will offline the device), so put a discriminating block in the command
completion routing and send the SRB_STATUS_ERROR upwards with DID_PASSTHROUGH
for commands we know should not be retried.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/storvsc_drv.c