storvsc: force SPC-3 compliance on win8 and win8 r2 hosts
authorK. Y. Srinivasan <kys@microsoft.com>
Tue, 16 Dec 2014 21:21:45 +0000 (13:21 -0800)
committerChristoph Hellwig <hch@lst.de>
Fri, 9 Jan 2015 14:44:27 +0000 (15:44 +0100)
On win8 and win8 r2 hosts force SPC-3 compliance for MSFT virtual disks.
Ubuntu has been carrying a similar patch outside the tree for a while now.
Starting with win10, the host will support SPC-3 compliance. Based on all
the testing that has been done on win8 and win8 r2 hosts, we are comfortable
claiming SPC-3 compliance on these hosts as well. This will enable TRIM
support on these hosts.

Suggested by: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: Long Li <longli@microsoft.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/storvsc_drv.c

index caa9f0ea217cc902950636a3b8609bc7508f584d..efc6e446b6c83e31677ab6e5ec01424e6bab59cb 100644 (file)
@@ -1394,6 +1394,19 @@ static int storvsc_device_configure(struct scsi_device *sdevice)
         */
        sdevice->sdev_bflags |= msft_blist_flags;
 
+       /*
+        * If the host is WIN8 or WIN8 R2, claim conformance to SPC-3
+        * if the device is a MSFT virtual device.
+        */
+       if (!strncmp(sdevice->vendor, "Msft", 4)) {
+               switch (vmbus_proto_version) {
+               case VERSION_WIN8:
+               case VERSION_WIN8_1:
+                       sdevice->scsi_level = SCSI_SPC_3;
+                       break;
+               }
+       }
+
        return 0;
 }