On Sat, Nov 12, 2022 at 02:49:36PM -0500, Douglas Gilbert wrote: > Both the SCSI and NVMe subsystems receive user data from the block > layer in scatterlist_s No, they don't. For one thing there is no 'scatterlist_s', and second no one receives it. Block drivers need to generate it using the blk_rq_map_sg helper. > (aka scatter gather lists (sgl) which are > often arrays). If drivers in those subsystems represent storage > (e.g. a ramdisk) or cache "hot" user data then they may also > choose to use scatterlist_s. Currently there are no sgl to sgl > operations in the kernel. Start with a sgl to sgl copy. Stops > when the first of the number of requested bytes to copy, or the > source sgl, or the destination sgl is exhausted. So the > destination sgl will _not_ grow. No, the scatterlist is a bad data structure, but for now we have to use it for dma-mapping non-contigous pieces of memory. For everything else it absolutely should not be used, and we should not add helpers to facilitate that. NAK for this and the other helpers.