Re: [ 38/48] SCSI & usb-storage: add try_rc_10_first flag

Alan Stern
2012-07-06T14:00:12Z

On Thu, 5 Jul 2012, Matthew Wilcox wrote:

> > > Sure, it's one extra command, but really, who cares?
> >
> > Well, some USB devices might care. Right now we don't send RC16 to
> > them at all because they get RC10 first and it indicates a capacity
> > below 2 TB.
>
> Mmm. I think I forgot a step:
>
> Send RC10 (unless the device supports PI, in which case it's probably
> enterprisey and well-tested)
> If the device indicates a level < SPC_2, stop here
> Send RC16
> If RC10 capacity agrees with RC16 capacity, use extra RC16 data.
> (for values of "agrees with" that include the "-1 to use RC16" indicator)

That might or might not work. I don't know for certain, but it's
possible that some USB devices do claim a level > SPC_2 and yet can't
handle RC16. Of course, we can always set the NO_READ_CAPACITY_16
flags for these devices as they crop up.

> > In the end, usb-storage may be forced to use the NO_READ_CAPACITY_16
> > flag with all devices except those we can positively identify as a
> > USB-(S)ATA bridge.
>
> Is that really an improvement over nobbling the IDENTIFY results to
> force SCSI_2?

Yes. There was a good reason for getting rid of that change to the
INQUIRY result (some devices don't like it when the LUN bits are
stuffed into the second byte of each CDB), and I don't want to go back.

Alan Stern