Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > I moved FOLL_PIN to internal.h because it is not supposed to be used > outside mm/* > > I would prefer to keep it that way. I'll need to do something else, then, such as creating a new pair of 'cleanup' flags: [include/linux/mm_types.h] #define PAGE_CLEANUP_UNPIN (1U << 0) #define PAGE_CLEANUP_PUT (1U << 0) [mm/gup.h] void folio_put_unpin(struct folio *folio, unsigned int cleanup_flags) { unsigned int gup_flags = 0; cleanup_flags &= PAGE_CLEANUP_UNPIN | PAGE_CLEANUP_PUT; if (!cleanup_flags) return; gup_flags |= cleanup_flags & PAGE_CLEANUP_UNPIN ? FOLL_PIN : 0; gup_flags |= cleanup_flags & PAGE_CLEANUP_PUT ? FOLL_GET : 0; gup_put_folio(folio, 1, flags); } EXPORT_SYMBOL_GPL(folio_put_unpin); David