mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
mm: add folio_add_lru_vma()
Convert lru_cache_add_inactive_or_unevictable() to folio_add_lru_vma() and add a compatibility wrapper. Link: https://lkml.kernel.org/r/20220902194653.1739778-6-willy@infradead.org Signed-off-by: "Matthew Wilcox (Oracle)" <willy@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
d788f5b374
commit
681ecf6301
3 changed files with 20 additions and 15 deletions
|
@ -379,11 +379,11 @@ extern unsigned long totalreserve_pages;
|
||||||
|
|
||||||
|
|
||||||
/* linux/mm/swap.c */
|
/* linux/mm/swap.c */
|
||||||
extern void lru_note_cost(struct lruvec *lruvec, bool file,
|
void lru_note_cost(struct lruvec *lruvec, bool file, unsigned int nr_pages);
|
||||||
unsigned int nr_pages);
|
void lru_note_cost_folio(struct folio *);
|
||||||
extern void lru_note_cost_folio(struct folio *);
|
void folio_add_lru(struct folio *);
|
||||||
extern void folio_add_lru(struct folio *);
|
void folio_add_lru_vma(struct folio *, struct vm_area_struct *);
|
||||||
extern void lru_cache_add(struct page *);
|
void lru_cache_add(struct page *);
|
||||||
void mark_page_accessed(struct page *);
|
void mark_page_accessed(struct page *);
|
||||||
void folio_mark_accessed(struct folio *);
|
void folio_mark_accessed(struct folio *);
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,12 @@ void lru_cache_add(struct page *page)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(lru_cache_add);
|
EXPORT_SYMBOL(lru_cache_add);
|
||||||
|
|
||||||
|
void lru_cache_add_inactive_or_unevictable(struct page *page,
|
||||||
|
struct vm_area_struct *vma)
|
||||||
|
{
|
||||||
|
folio_add_lru_vma(page_folio(page), vma);
|
||||||
|
}
|
||||||
|
|
||||||
int add_to_page_cache_lru(struct page *page, struct address_space *mapping,
|
int add_to_page_cache_lru(struct page *page, struct address_space *mapping,
|
||||||
pgoff_t index, gfp_t gfp)
|
pgoff_t index, gfp_t gfp)
|
||||||
{
|
{
|
||||||
|
|
19
mm/swap.c
19
mm/swap.c
|
@ -537,22 +537,21 @@ void folio_add_lru(struct folio *folio)
|
||||||
EXPORT_SYMBOL(folio_add_lru);
|
EXPORT_SYMBOL(folio_add_lru);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* lru_cache_add_inactive_or_unevictable
|
* folio_add_lru_vma() - Add a folio to the appropate LRU list for this VMA.
|
||||||
* @page: the page to be added to LRU
|
* @folio: The folio to be added to the LRU.
|
||||||
* @vma: vma in which page is mapped for determining reclaimability
|
* @vma: VMA in which the folio is mapped.
|
||||||
*
|
*
|
||||||
* Place @page on the inactive or unevictable LRU list, depending on its
|
* If the VMA is mlocked, @folio is added to the unevictable list.
|
||||||
* evictability.
|
* Otherwise, it is treated the same way as folio_add_lru().
|
||||||
*/
|
*/
|
||||||
void lru_cache_add_inactive_or_unevictable(struct page *page,
|
void folio_add_lru_vma(struct folio *folio, struct vm_area_struct *vma)
|
||||||
struct vm_area_struct *vma)
|
|
||||||
{
|
{
|
||||||
VM_BUG_ON_PAGE(PageLRU(page), page);
|
VM_BUG_ON_FOLIO(folio_test_lru(folio), folio);
|
||||||
|
|
||||||
if (unlikely((vma->vm_flags & (VM_LOCKED | VM_SPECIAL)) == VM_LOCKED))
|
if (unlikely((vma->vm_flags & (VM_LOCKED | VM_SPECIAL)) == VM_LOCKED))
|
||||||
mlock_new_page(page);
|
mlock_new_page(&folio->page);
|
||||||
else
|
else
|
||||||
lru_cache_add(page);
|
folio_add_lru(folio);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue