Hi, ather than repeat the same blurb again, see the v2 posting here: https://lore.kernel.org/linux-fsdevel/20230327180449.87382-1-axboe@xxxxxxxxx/ tldr - turn single segment iovecs into ITER_UBUF rather than ITER_IOVEC, because they are more efficient. Main addition since v3 is being careful checking users of iov_iter, and there are two odd ones - infiniband and sound. I've added a prep patch to be able to grab the segment count of a user backed iterator, which sound and IB can then use. I'm not convinced the sound patch is useful at all, since it LOOKS like it requires nr_segments > 1 anyway. I'll chat with the folks on that side to be sure. We may get away with just EINVAL for this case. IB is pretty straight forward, just make it deal with ITER_UBUF as a single segment thing. -- Jens Axboe