On Sun, 27 Feb 2022 at 10:34, <jhubbard.send.patches@xxxxxxxxx> wrote: > > From: John Hubbard <jhubbard@xxxxxxxxxx> > > Convert the fuse filesystem to support the new iov_iter_get_pages() > behavior. That routine now invokes pin_user_pages_fast(), which means > that such pages must be released via unpin_user_page(), rather than via > put_page(). > > This commit also removes any possibility of kernel pages being handled, > in the fuse_get_user_pages() call. Although this may seem like a steep > price to pay, Christoph Hellwig actually recommended it a few years ago > for nearly the same situation [1]. This might work for O_DIRECT, but fuse has this mode of operation which turns normal "buffered" I/O into direct I/O. And that in turn will break execve of such files. So AFAICS we need to keep kvec handing in some way. Thanks, Miklos