On 2023/1/13 23:33, Matthew Wilcox wrote:
On Thu, Jan 12, 2023 at 04:30:01PM +0800, Kefeng Wang wrote:
Convert do_anonymous_page() to use a folio and replace related functions
to folio functions.
I think this patch has a prerequisite of sorting out
alloc_zeroed_user_highpage_movable(). That way we can get rid of
the 'page' variable inside this function altogether.
How about provide a wrapper like
folio_alloc_zeroed_user_highmem_movable(), but the is a little bit long.
static inline struct folio *
folio_alloc_zeroed_user_highmem_movable(struct vm_area_struct *vma,
unsigned long vaddr)
{
struct folio *folio = NULL;
struct page *page;
page = alloc_zeroed_user_highpage_movable(vma, vaddr);
if (page)
folio = page_folio(page);
return folio;
}
inc_mm_counter(vma->vm_mm, MM_ANONPAGES);
page_add_new_anon_rmap(page, vma, vmf->address);
folio_add_new_anon-rmap().
ok, will update.
- lru_cache_add_inactive_or_unevictable(page, vma);
+ folio_add_lru_vma(folio, vma);