aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/storvsc_drv.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
index cebcef7c69ac..8f8847ef1108 100644
--- a/drivers/scsi/storvsc_drv.c
+++ b/drivers/scsi/storvsc_drv.c
@@ -1553,9 +1553,19 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
1553 struct vmscsi_request *vm_srb; 1553 struct vmscsi_request *vm_srb;
1554 struct stor_mem_pools *memp = scmnd->device->hostdata; 1554 struct stor_mem_pools *memp = scmnd->device->hostdata;
1555 1555
1556 if (!storvsc_scsi_cmd_ok(scmnd)) { 1556 if (vmstor_current_major <= VMSTOR_WIN8_MAJOR) {
1557 scmnd->scsi_done(scmnd); 1557 /*
1558 return 0; 1558 * On legacy hosts filter unimplemented commands.
1559 * Future hosts are expected to correctly handle
1560 * unsupported commands. Furthermore, it is
1561 * possible that some of the currently
1562 * unsupported commands maybe supported in
1563 * future versions of the host.
1564 */
1565 if (!storvsc_scsi_cmd_ok(scmnd)) {
1566 scmnd->scsi_done(scmnd);
1567 return 0;
1568 }
1559 } 1569 }
1560 1570
1561 request_size = sizeof(struct storvsc_cmd_request); 1571 request_size = sizeof(struct storvsc_cmd_request);