Re: [PATCH 6/6] fuse: convert direct IO paths to use FOLL_PIN
From: Miklos Szeredi
Date: Mon Feb 28 2022 - 10:59:50 EST
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