Lines Matching defs:folio
34 static struct folio *page_idle_get_folio(unsigned long pfn)
37 struct folio *folio;
42 folio = page_folio(page);
43 if (!folio_test_lru(folio) || !folio_try_get(folio))
45 if (unlikely(page_folio(page) != folio || !folio_test_lru(folio))) {
46 folio_put(folio);
47 folio = NULL;
49 return folio;
52 static bool page_idle_clear_pte_refs_one(struct folio *folio,
56 DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0);
78 folio_clear_idle(folio);
84 folio_set_young(folio);
89 static void page_idle_clear_pte_refs(struct folio *folio)
101 if (!folio_mapped(folio) || !folio_raw_mapping(folio))
104 need_lock = !folio_test_anon(folio) || folio_test_ksm(folio);
105 if (need_lock && !folio_trylock(folio))
108 rmap_walk(folio, &rwc);
111 folio_unlock(folio);
119 struct folio *folio;
138 folio = page_idle_get_folio(pfn);
139 if (folio) {
140 if (folio_test_idle(folio)) {
146 page_idle_clear_pte_refs(folio);
147 if (folio_test_idle(folio))
150 folio_put(folio);
164 struct folio *folio;
182 folio = page_idle_get_folio(pfn);
183 if (folio) {
184 page_idle_clear_pte_refs(folio);
185 folio_set_idle(folio);
186 folio_put(folio);