On 03/29/2020 08:05 AM, Christoph Hellwig wrote: > On Sat, Mar 28, 2020 at 09:16:55AM -0700, Bart Van Assche wrote: >> >There are more users in the Linux kernel of bio_add_pc_page() than only >> >bio_map_kern(), e.g. the SCSI target pass-through code >> >(drivers/target/target_core_pscsi.c). The code that uses bio_map_kern() >> >is in patch 22/26: "block/rnbd: server: functionality for IO submission >> >to file or block dev". Isn't that use case similar to the SCSI >> >pass-through code? I think the RNBD server code also implements storage >> >target functionality. > No, it is not at all. The RNBD case submits normal read/write bios, for > which bio_map_kerl is the wrong interfac given that it > uses bio_add_pc_page. Read, write and other non-passthrough requests > must use bio_add_page instead. > Since rw are most common operations, it'd be nice to have a helper function for REQ_OP_[READ|WRITE] to map and submit bio from data buffer with chaining to avoid code duplication in each driver which based on the bio_add_page(). I'd be happy to send a patch for that if that is acceptable.