On Wed, Jun 22, 2022 at 05:15:17AM +0100, Al Viro wrote: > Equivalent of single-segment iovec. Initialized by iov_iter_ubuf(), > checked for by iter_is_ubuf(), otherwise behaves like ITER_IOVEC > ones. > > We are going to expose the things like ->write_iter() et.al. to those > in subsequent commits. > > New predicate (user_backed_iter()) that is true for ITER_IOVEC and > ITER_UBUF; places like direct-IO handling should use that for > checking that pages we modify after getting them from iov_iter_get_pages() > would need to be dirtied. > > DO NOT assume that replacing iter_is_iovec() with user_backed_iter() > will solve all problems - there's code that uses iter_is_iovec() to > decide how to poke around in iov_iter guts and for that the predicate > replacement obviously won't suffice. > > Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> > Link: https://lore.kernel.org/r/20220622041552.737754-9-viro@xxxxxxxxxxxxxxxxxx Hi Al, This changes causes sendfile09 LTP testcase fail in linux-next (up to next-20220727) on s390. In fact, not this change exactly, but rather 92d4d18eecb9 ("new iov_iter flavour - ITER_UBUF") - which differs from what is posted here. AFAICT page_cache_pipe_buf_confirm() encounters !PageUptodate() and !page->mapping page and returns -ENODATA. I am going to narrow the testcase and get more details, but please let me know if I am missing something. Thanks!