linux/include/scsi
Alan Stern 6a0bdffa00 SCSI & usb-storage: add try_rc_10_first flag
Several bug reports have been received recently for USB mass-storage
devices that don't handle READ CAPACITY(16) commands properly.  They
report bogus sizes, in some cases becoming unusable as a result.

The bugs were triggered by commit
09b6b51b0b (SCSI & usb-storage: add
flags for VPD pages and REPORT LUNS), which caused usb-storage to stop
overriding the SCSI level reported by devices.  By default, the sd
driver will try READ CAPACITY(16) first for any device whose level is
above SCSI_SPC_2.

It seems likely that any device large enough to require the use of
READ CAPACITY(16) (i.e., 2 TB or more) would be able to handle READ
CAPACITY(10) commands properly.  Indeed, I don't know of any devices
that don't handle READ CAPACITY(10) properly.

Therefore this patch (as1559) adds a new flag telling the sd driver
to try READ CAPACITY(10) before READ CAPACITY(16), and sets this flag
for every USB mass-storage device.  If a device really is larger than
2 TB, sd will fall back to READ CAPACITY(16) just as it used to.

This fixes Bugzilla #43391.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Hans de Goede <hdegoede@redhat.com>
CC: "James E.J. Bottomley" <JBottomley@parallels.com>
CC: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2012-06-22 22:05:31 -07:00
..
fc SCSI updates on 20120319 2012-03-22 12:55:29 -07:00
fc_encode.h
fc_frame.h
fcoe_sysfs.h [SCSI] libfcoe: Add fcoe_sysfs 2012-05-23 09:40:09 +01:00
iscsi_if.h [SCSI] qla4xxx: Removed packed attr from struct iscsi_chap_rec 2012-03-27 08:26:35 +01:00
iscsi_proto.h [SCSI] be2iscsi: Get Initiator Name for the iSCSI_Host 2012-04-25 09:29:35 +01:00
Kbuild
libfc.h
libfcoe.h [SCSI] fcoe, bnx2fc, libfcoe: SW FCoE and bnx2fc use FCoE Syfs 2012-05-23 09:43:13 +01:00
libiscsi_tcp.h
libiscsi.h
libsas.h [SCSI] libsas: introduce sas_work to fix sas_drain_work vs sas_queue_work 2012-04-23 12:03:39 +01:00
libsrp.h
osd_attributes.h
osd_initiator.h
osd_ore.h BUG: headers with BUG/BUG_ON etc. need linux/bug.h 2012-03-04 17:54:34 -05:00
osd_protocol.h
osd_sec.h
osd_sense.h
osd_types.h
sas_ata.h [SCSI] libsas, libata: fix start of life for a sas ata_port 2012-04-23 12:11:47 +01:00
sas.h isci: kill sci_phy_protocol and sci_request_protocol 2012-05-17 12:27:11 -07:00
scsi_bsg_fc.h
scsi_bsg_iscsi.h
scsi_cmnd.h SCSI: Fix error handling when no ULD is attached 2012-04-15 11:08:53 -07:00
scsi_dbg.h
scsi_device.h SCSI & usb-storage: add try_rc_10_first flag 2012-06-22 22:05:31 -07:00
scsi_devinfo.h
scsi_dh.h
scsi_driver.h [SCSI] Handle disk devices which can not process medium access commands 2012-02-19 10:14:52 -06:00
scsi_eh.h
scsi_host.h
scsi_ioctl.h
scsi_netlink_fc.h
scsi_netlink.h headers: include linux/types.h where appropriate 2012-03-23 16:58:31 -07:00
scsi_scan.h
scsi_tcq.h
scsi_tgt_if.h
scsi_tgt.h
scsi_transport_fc.h
scsi_transport_iscsi.h [SCSI] iscsi_transport: Add support to display CHAP list and delete CHAP entry 2012-02-29 16:55:59 -06:00
scsi_transport_sas.h [SCSI] libsas: fix sas_find_local_phy(), take phy references 2012-02-29 13:01:06 -06:00
scsi_transport_spi.h
scsi_transport_srp.h
scsi_transport.h BUG: headers with BUG/BUG_ON etc. need linux/bug.h 2012-03-04 17:54:34 -05:00
scsi.h scsi: update scsi.h with SYNCHRONIZE_CACHE_16 2012-02-25 14:37:46 -08:00
scsicam.h
sg.h
srp.h