mm: memory: rename page_copy_prealloc() to folio_prealloc()
Let's rename page_copy_prealloc() to folio_prealloc(), which could be reused in more functons, as it maybe zero the new page, pass a new need_zero to it, and call the vma_alloc_zeroed_movable_folio() if need_zero is true. Link: https://lkml.kernel.org/r/20231118023232.1409103-4-wangkefeng.wang@huawei.com Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com> Reviewed-by: Sidhartha Kumar <sidhartha.kumar@oracle.com> Reviewed-by: Vishal Moola (Oracle) <vishal.moola@gmail.com> Cc: David Hildenbrand <david@redhat.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
f8b6187d8d
commit
294de6d8f1
13
mm/memory.c
13
mm/memory.c
|
@ -992,12 +992,17 @@ copy_present_pte(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline struct folio *page_copy_prealloc(struct mm_struct *src_mm,
|
||||
struct vm_area_struct *vma, unsigned long addr)
|
||||
static inline struct folio *folio_prealloc(struct mm_struct *src_mm,
|
||||
struct vm_area_struct *vma, unsigned long addr, bool need_zero)
|
||||
{
|
||||
struct folio *new_folio;
|
||||
|
||||
new_folio = vma_alloc_folio(GFP_HIGHUSER_MOVABLE, 0, vma, addr, false);
|
||||
if (need_zero)
|
||||
new_folio = vma_alloc_zeroed_movable_folio(vma, addr);
|
||||
else
|
||||
new_folio = vma_alloc_folio(GFP_HIGHUSER_MOVABLE, 0, vma,
|
||||
addr, false);
|
||||
|
||||
if (!new_folio)
|
||||
return NULL;
|
||||
|
||||
|
@ -1129,7 +1134,7 @@ again:
|
|||
} else if (ret == -EBUSY) {
|
||||
goto out;
|
||||
} else if (ret == -EAGAIN) {
|
||||
prealloc = page_copy_prealloc(src_mm, src_vma, addr);
|
||||
prealloc = folio_prealloc(src_mm, src_vma, addr, false);
|
||||
if (!prealloc)
|
||||
return -ENOMEM;
|
||||
} else if (ret) {
|
||||
|
|
Loading…
Reference in New Issue