Re: [PATCH v4 7/7] iov_iter, block: Make bio structs pin pages rather than ref'ing if appropriate

From: Jan Kara
Date: Wed Jan 11 2023 - 05:02:27 EST


On Tue 10-01-23 14:42:04, David Howells wrote:
> Jan Kara <jack@xxxxxxx> wrote:
>
> > ... So filesystems really need DIO reads to use FOLL_PIN instead of FOLL_GET
> > and consequently we need to pass information to bio completion function how
> > page references should be dropped.
>
> That information would be available in the bio struct with this patch if
> necessary, though transcribed into a combination of BIO_* flags instead off
> FOLL_* flags.
>
> I wonder if there's the possibility of the filesystem that generated the bio
> nicking the pages out of the bio and putting them itself.

I just meant to say that some addition struct bio is needed because your
bio_release_page() needs to find out how to release page ref. Filesystem
itself does not care about type of page reference in this path so what you
do in the latest version of this patch looks good to me.

Honza
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR