mm: add folio_get_nontail_page()
Patch series "Convert a couple migrate functions to use folios", v2. This patchset introduces folio_movable_ops() and converts 3 functions in mm/migrate.c to use folios. It also introduces folio_get_nontail_page() for folio conversions which may want to distinguish between head and tail pages. This patch (of 4): folio_get_nontail_page() returns the folio associated with a head page. This is necessary for folio conversions where the behavior of that function differs between head pages and tail pages. Link: https://lkml.kernel.org/r/20230130214352.40538-1-vishal.moola@gmail.com Link: https://lkml.kernel.org/r/20230130214352.40538-2-vishal.moola@gmail.com Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com> Cc: Matthew Wilcox <willy@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
4a64981dfe
commit
3c1ea2c729
@ -892,6 +892,13 @@ static inline bool get_page_unless_zero(struct page *page)
|
||||
return page_ref_add_unless(page, 1, 0);
|
||||
}
|
||||
|
||||
static inline struct folio *folio_get_nontail_page(struct page *page)
|
||||
{
|
||||
if (unlikely(!get_page_unless_zero(page)))
|
||||
return NULL;
|
||||
return (struct folio *)page;
|
||||
}
|
||||
|
||||
extern int page_is_ram(unsigned long pfn);
|
||||
|
||||
enum {
|
||||
|
Loading…
x
Reference in New Issue
Block a user