forked from Minki/linux
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
@ -379,11 +379,11 @@ extern unsigned long totalreserve_pages;
|
||||
|
||||
|
||||
/* linux/mm/swap.c */
|
||||
extern void lru_note_cost(struct lruvec *lruvec, bool file,
|
||||
unsigned int nr_pages);
|
||||
extern void lru_note_cost_folio(struct folio *);
|
||||
extern void folio_add_lru(struct folio *);
|
||||
extern void lru_cache_add(struct page *);
|
||||
void lru_note_cost(struct lruvec *lruvec, bool file, unsigned int nr_pages);
|
||||
void lru_note_cost_folio(struct folio *);
|
||||
void folio_add_lru(struct folio *);
|
||||
void folio_add_lru_vma(struct folio *, struct vm_area_struct *);
|
||||
void lru_cache_add(struct page *);
|
||||
void mark_page_accessed(struct page *);
|
||||
void folio_mark_accessed(struct folio *);
|
||||
|
||||
|
@ -88,6 +88,12 @@ void lru_cache_add(struct page *page)
|
||||
}
|
||||
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,
|
||||
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);
|
||||
|
||||
/**
|
||||
* lru_cache_add_inactive_or_unevictable
|
||||
* @page: the page to be added to LRU
|
||||
* @vma: vma in which page is mapped for determining reclaimability
|
||||
* folio_add_lru_vma() - Add a folio to the appropate LRU list for this VMA.
|
||||
* @folio: The folio to be added to the LRU.
|
||||
* @vma: VMA in which the folio is mapped.
|
||||
*
|
||||
* Place @page on the inactive or unevictable LRU list, depending on its
|
||||
* evictability.
|
||||
* If the VMA is mlocked, @folio is added to the unevictable list.
|
||||
* Otherwise, it is treated the same way as folio_add_lru().
|
||||
*/
|
||||
void lru_cache_add_inactive_or_unevictable(struct page *page,
|
||||
struct vm_area_struct *vma)
|
||||
void folio_add_lru_vma(struct folio *folio, 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))
|
||||
mlock_new_page(page);
|
||||
mlock_new_page(&folio->page);
|
||||
else
|
||||
lru_cache_add(page);
|
||||
folio_add_lru(folio);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user