On 22/12/2020 14:11, Christoph Hellwig wrote: > On Tue, Dec 15, 2020 at 02:05:35PM +0000, Pavel Begunkov wrote: >>> You may find clue from the following link: >>> >>> https://www.mail-archive.com/linux-kernel@xxxxxxxxxxxxxxx/msg2262077.html >> >> Thanks for the link! >> >> Al, you mentioned "Zero-length segments are not disallowed", do you have >> a strong opinion on that? Apart from already diverged behaviour from the >> block layer and getting in the way of this series, without it we'd also be >> able to remove some extra ifs, e.g. in iterate_bvec() > > I'd prefer not to support zero-length ITER_BVEC and catching them > early, as the block layer can't deal with them either. From a quick > look at iter_file_splice_write it should be pretty trivial to fix there, > although we'll need to audit other callers as well (even if I don't > expect them to submit this degenerate case). Can scatterlist have 0-len entries? Those are directly translated into bvecs, e.g. in nvme/target/io-cmd-file.c and target/target_core_file.c. I've audited most of others by this moment, they're fine. Thanks for other nits, they will go into next version. -- Pavel Begunkov