> +static inline void attach_page_private(struct page *page, void *data) > +{ > + attach_folio_private((struct folio *)page, data); > +} > + > +static inline void *detach_page_private(struct page *page) > +{ > + return detach_folio_private((struct folio *)page); > +} I hate these open code casts. Can't we have a single central page_to_folio helper, which could also grow a debug check (maybe under a new config option) to check that it really is called on a head page?