On Thu 21-09-23 21:07:38, Matthew Wilcox (Oracle) wrote: > This is the folio equivalent of unmap_and_put_page(), which remains as > a wrapper for it. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> I'm missing a patch 10/10 in this series (and a coverletter would be nice as well)... What's there ;)? Honza > --- > include/linux/highmem.h | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/include/linux/highmem.h b/include/linux/highmem.h > index 99c474de800d..4cacc0e43b51 100644 > --- a/include/linux/highmem.h > +++ b/include/linux/highmem.h > @@ -551,10 +551,24 @@ static inline void folio_zero_range(struct folio *folio, > zero_user_segments(&folio->page, start, start + length, 0, 0); > } > > -static inline void unmap_and_put_page(struct page *page, void *addr) > +/** > + * folio_release_kmap - Unmap a folio and drop a refcount. > + * @folio: The folio to release. > + * @addr: The address previously returned by a call to kmap_local_folio(). > + * > + * It is common, eg in directory handling to kmap a folio. This function > + * unmaps the folio and drops the refcount that was being held to keep the > + * folio alive while we accessed it. > + */ > +static inline void folio_release_kmap(struct folio *folio, void *addr) > { > kunmap_local(addr); > - put_page(page); > + folio_put(folio); > +} > + > +static inline void unmap_and_put_page(struct page *page, void *addr) > +{ > + folio_release_kmap(page_folio(page), addr); > } > > #endif /* _LINUX_HIGHMEM_H */ > -- > 2.40.1 > -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR