|
@@ -1553,9 +1553,19 @@ static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd)
|
|
struct vmscsi_request *vm_srb;
|
|
struct vmscsi_request *vm_srb;
|
|
struct stor_mem_pools *memp = scmnd->device->hostdata;
|
|
struct stor_mem_pools *memp = scmnd->device->hostdata;
|
|
|
|
|
|
- if (!storvsc_scsi_cmd_ok(scmnd)) {
|
|
|
|
- scmnd->scsi_done(scmnd);
|
|
|
|
- return 0;
|
|
|
|
|
|
+ if (vmstor_current_major <= VMSTOR_WIN8_MAJOR) {
|
|
|
|
+ /*
|
|
|
|
+ * On legacy hosts filter unimplemented commands.
|
|
|
|
+ * Future hosts are expected to correctly handle
|
|
|
|
+ * unsupported commands. Furthermore, it is
|
|
|
|
+ * possible that some of the currently
|
|
|
|
+ * unsupported commands maybe supported in
|
|
|
|
+ * future versions of the host.
|
|
|
|
+ */
|
|
|
|
+ if (!storvsc_scsi_cmd_ok(scmnd)) {
|
|
|
|
+ scmnd->scsi_done(scmnd);
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
request_size = sizeof(struct storvsc_cmd_request);
|
|
request_size = sizeof(struct storvsc_cmd_request);
|