On Wed, 7 Nov 2012, Jason J. Herne wrote:
> > Most likely that's the answer. Of course, for a device to recognize
> > READ(16) but not READ(10) is a violation of the SCSI spec.
> >
> > I don't know what criterion Windows uses. Maybe it uses READ(16)
> > whenever the total capacity is >= 2^32 blocks.
>
> I've not had enough time to properly find where/how to fix/hack this
> into the code.
It won't be simple. The current algorithm has been working for a long
time, so people won't want to change it.
> I'll keep looking at it. Does there happen to be any "quirks" that might
> help?
No.
> Also, i assume the place to look is drivers/usb/storage?
No. The decision about which command to use is made in
drivers/scsi/sd.c, in sd_prep_fn(). Look at the lines starting with
} else if (block > 0xffffffff) {
(line 891 in my copy of the file).
> Is anything in drivers/scsi related?
> Forgive my ignorance, my kernel development experience is primarily in
> the realm of kvm.
> Any tips you could provide would be most appreciated.
What happens if you put a smaller drive (under 2 TB) in that enclosure?
Does it then work with READ(10) or does it still require READ(16)?
Alan Stern
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html