On Mon, Apr 04, 2016 at 04:38:45AM +0100, Al Viro wrote:
> I've no idea if anything is still using SG_DXFER_TO_FROM_DEV, but this
> behaviour AFAICS doesn't match that of write() on /dev/sg* (both
> in and out are done) or normal SG_IO (either both in and out, in case if it
> hits bio_map_user_iov(), or only out if it hits bio_copy_user_iov()).  In
> all cases the out part is done.  Here it is skipped.
> 
> Not sure who (if anybody) maintains it these days, but that behaviour looks
> wrong...

The right fix is to kill the duplicate SG_IO implementation and use
the block layer one.  The driver actually is a pretty straight SCSI
implementation, so making it a block driver has been a mistake from the
start.  I'll see if I can maybe get hold of hardware for the driver - it
seems pretty much unmaintained unfortunately.

Reply via email to