On Fri, Jul 29, 2022 at 06:21:23PM +0100, Al Viro wrote: > > 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. > > Grrr.... > > - } else if (iter_is_iovec(to)) { > + } else if (!user_backed_iter(to)) { > > in mm/shmem.c. Spot the typo... > > Could you check if replacing that line with > } else if (user_backed_iter(to)) { > > fixes the breakage? Yes, it does! So just to be sure - this is the fix: diff --git a/mm/shmem.c b/mm/shmem.c index 8baf26eda989..5783f11351bb 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -2626,7 +2626,7 @@ static ssize_t shmem_file_read_iter(struct kiocb *iocb, struct iov_iter *to) ret = copy_page_to_iter(page, offset, nr, to); put_page(page); - } else if (!user_backed_iter(to)) { + } else if (user_backed_iter(to)) { /* * Copy to user tends to be so well optimized, but * clear_user() not so much, that it is noticeably Thanks!