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

Alan Stern
2012-07-03T20:25:09Z

On Wed, 4 Jul 2012, James Bottomley wrote:

> > The reason for the try_rc_10_first flag is that some devices return
> > bogus data in response to RC16. Like, an 800 GB device claiming to
> > have 3 exabytes.
>
> So we could easily send both and only believe RC10 if the device is
> under 2TB.

More precisely, if RC10 indicates the device is under 2 TB then ignore
the RC16 capacity. Or maybe issue a warning if it disagrees with the
RC10 capacity.

> However, what about all the extra flags we read out of RC16,
> like trim, large sector size and DIF capability? If the device lies
> about its capacity, won't we get bogus values for those as well, which
> is going to cause other screw ups?

That seems quite likely. I don't know the answer for any individual
cases, however.

For the greatest safety, I suppose we could disbelieve all the fields
in the RC16 response if the RC16 capacity disagrees with the RC10
capacity and the RC10 capacity is under 2 TB.

Alan Stern