Re: [PATCH 0/3] add folio_headpage() macro

From: Matthew Wilcox
Date: Fri Jan 06 2023 - 14:22:13 EST


On Fri, Jan 06, 2023 at 05:40:25PM +0000, SeongJae Park wrote:
> The standard idiom for getting head page of a given folio is
> '&folio->page'. It is efficient and safe even if the folio is NULL,
> because the offset of page field in folio is zero. However, it makes
> the code not that easy to understand at the first glance, especially the
> NULL safety. Also, sometimes people forget the idiom and use
> 'folio_page(folio, 0)' instead. To make it easier to read and remember,
> add a new macro function called 'folio_headpage()' with the NULL case
> explanation. Then, replace the 'folio_page(folio, 0)' calls with
> 'folio_headpage(folio)'.

No. Everywhere that uses &folio->page is a place that needs to be fixed.
It shouldn't have a nice convenience macro. It should make you mildly
uncomfortable.