Re: [PATCH v8 10/10] mm: Renumber FOLL_PIN and FOLL_GET down

From: David Howells
Date: Tue Jan 24 2023 - 08:59:44 EST


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