[SCSI] sd: Try READ CAPACITY 16 first for SBC-2 devices
authorMatthew Wilcox <matthew@wil.cx>
Thu, 12 Mar 2009 18:20:30 +0000 (14:20 -0400)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Wed, 18 Mar 2009 01:43:29 +0000 (21:43 -0400)
commit2b301307f63dbecf06d91f58f003c7fb7addee24
treee6dee7552a0c52124a537e6db74ddce940443554
parent0da205e01bc58cfad660659e3c901223d3596c57
[SCSI] sd: Try READ CAPACITY 16 first for SBC-2 devices

New features are being added to the READ CAPACITY 16 results, so we
want to issue it in preference to READ CAPACITY 10.  Unfortunately, some
devices misbehave when they see a READ CAPACITY 16, so we restrict this
command to devices which claim conformance to SPC-3 (aka SBC-2), or claim
they have features which are only reported in the READ CAPACITY 16 data.

The READ CAPACITY 16 command is optional, even for SBC-2 devices, so
we fall back to READ CAPACITY 10 if READ CAPACITY 16 fails.

[jejb: don't error if device supports SBC-2 but doesn't support RC16]
Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Tested-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/sd.c