On Sun, May 22, 2022 at 08:43:26PM -0600, Jens Axboe wrote: > Branch here: > > https://git.kernel.dk/cgit/linux-block/log/?h=iov-iter > > First 5 are generic ones, and some of them should just be folded with > your changes. > > Last 2 are just converting io_uring to use it where appropriate. > > We can also use it for vectored readv/writev and recvmsg/sendmsg with > one segment. The latter is mostly single segment in the real world > anyway, former probably too. Though not sure it's worth it when we're > copying a single iovec first anyway? Something to test... Not a good idea. Don't assume that all users of iov_iter are well-behaving; not everything is flavour-agnostic. If nothing else, you'll break the hell out of infinibarf - both qib and hfi check that ->write_iter() gets IOV_ITER target and fail otherwise. BTW, #work.iov_iter is going to be rebased and reordered; if nothing else, a bunch of places like dio->should_dirty = iter_is_iovec(iter) && iov_iter_rw(iter) == READ; need to be dealt with before we switch new_sync_read() and new_sync_write() to ITER_UBUF. I'm trying to sort out the /dev/fuse breakage at the moment - that thing expects ITER_IOVEC in ->read_iter() and ->write_iter(). Needs to be dealt with before new_sync_{read,write}() part, or we'll get bisection hazard...