Re: [RFC PATCH v2 3/3] block: Use iov_iter_extract_pages() and page pinning in direct-io.c

From: David Howells
Date: Fri May 26 2023 - 04:35:00 EST

Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:

> I'm not seeing where we skip the unpin of the zero page, as commented
> in patch 1 (but maybe I'm not reviewing carefully enough as I'm at a
> conference right now).

It's done by unpin_user_page{,s}(), hidden away in gup.c. See the commit
message for patch 1:

Make pin_user_pages*() leave a ZERO_PAGE unpinned if it extracts a
pointer to it from the page tables and make unpin_user_page*()
correspondingly ignore a ZERO_PAGE when unpinning.