Re: [PATCH v2 4/7] iov_iter: new iov_iter_pin_pages*() routines

From: Christoph Hellwig
Date: Tue Sep 06 2022 - 03:49:07 EST


On Tue, Sep 06, 2022 at 12:44:28AM -0700, John Hubbard wrote:
> OK, that part is clear.
>
> > - for the pin case don't use the existing bvec helper at all, but
> > copy the logic for the block layer for not pinning.
>
> I'm almost, but not quite sure I get the idea above. Overall, what
> happens to bvec pages? Leave the get_page() pin in place for FOLL_GET
> (or USE_FOLL_GET), I suppose, but do...what, for FOLL_PIN callers?

Do not change anyhing for FOLL_GET callers, as they are on the way out
anyway.

For FOLL_PIN callers, never pin bvec and kvec pages: For file systems
not acquiring a reference is obviously safe, and the other callers will
need an audit, but I can't think of why it woul ever be unsafe.