I was complaining that switching from a folio to a page interface is a retro-step. But try_grab_page and try_grab_folio actually both take a strut page argument and do similar but different things. Yikes! > -int __must_check try_grab_page(struct page *page, unsigned int flags) > +int __must_check try_grab_page(struct page *page, int refs, unsigned int flags) This would now make it a try_grab_pages. Also please try to avoid the overly lone lines here and in the external declaration.