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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to