Messages in this thread | | | Date | Sun, 3 Apr 2016 23:52:20 -0700 | From | Christoph Hellwig <> | Subject | Re: [RFC] weird semantics of SG_DXFER_TO_FROM_DEV in BLK_DEV_SKD (drivers/block/skd*) |
| |
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.
| |