On my SanDisk ImageMate II USB CompactFlash reader, the usb-storage module
usually works to read/write files on flash cartridges. However, for
cartridges > 16MB or so, files past a certain point on the flash disk
return I/O errors only.
I suspect the problem is associated with the SCSI READ6 vs READ10
operation, a distinction that the kernel's usb-storage.c file is aware of
in the form of flags (US_FL_MODE_XLATE). The code does not enable this
flag for this USB target device, and does not appear to permit a module
option to allow manual override in modules.conf either. So, assuming that
this flag indeed would help this device, we need either it to be
automatically set for the SanDisk reader, or else a run-time module
parameter to override it.
Note that the usb-storage module is not supported, and has known problems which
won't get solved as they require a backport of the 2.4 SCSI layer.
This bug will be resolved with a 2.4 kernel. There are no plans at this time to
backport the 2.4 scsi layer to 2.2.