Lines Matching defs:folio
846 struct folio *folio = NULL;
944 folio = NULL;
976 folio = page_folio(page);
977 low_pfn += folio_nr_pages(folio) - 1;
1046 folio = page_folio(page);
1059 folio = folio_get_nontail_page(page);
1060 if (unlikely(!folio))
1068 mapping = folio_mapping(folio);
1069 if (!mapping && (folio_ref_count(folio) - 1) > folio_mapcount(folio))
1080 if (!folio_test_lru(folio))
1084 if (!(mode & ISOLATE_UNEVICTABLE) && folio_test_unevictable(folio))
1093 if ((mode & ISOLATE_ASYNC_MIGRATE) && folio_test_writeback(folio))
1096 if ((mode & ISOLATE_ASYNC_MIGRATE) && folio_test_dirty(folio)) {
1104 * the mapping. Truncation holds the folio lock
1105 * until after the folio is removed from the page
1108 if (!folio_trylock(folio))
1111 mapping = folio_mapping(folio);
1114 folio_unlock(folio);
1119 /* Try isolate the folio */
1120 if (!folio_test_clear_lru(folio))
1123 lruvec = folio_lruvec(folio);
1133 lruvec_memcg_debug(lruvec, folio);
1150 * folio become large since the non-locked check,
1153 if (unlikely(folio_test_large(folio) && !cc->alloc_contig)) {
1154 low_pfn += folio_nr_pages(folio) - 1;
1155 nr_scanned += folio_nr_pages(folio) - 1;
1156 folio_set_lru(folio);
1161 /* The folio is taken off the LRU */
1162 if (folio_test_large(folio))
1163 low_pfn += folio_nr_pages(folio) - 1;
1166 lruvec_del_folio(lruvec, folio);
1167 node_stat_mod_folio(folio,
1168 NR_ISOLATED_ANON + folio_is_file_lru(folio),
1169 folio_nr_pages(folio));
1172 list_add(&folio->lru, &cc->migratepages);
1174 cc->nr_migratepages += folio_nr_pages(folio);
1175 nr_isolated += folio_nr_pages(folio);
1176 nr_scanned += folio_nr_pages(folio) - 1;
1198 folio_put(folio);
1239 folio = NULL;
1244 if (folio) {
1245 folio_set_lru(folio);
1246 folio_put(folio);
1763 static struct folio *compaction_alloc(struct folio *src, unsigned long data)
1766 struct folio *dst;
1775 dst = list_entry(cc->freepages.next, struct folio, lru);
1787 static void compaction_free(struct folio *dst, unsigned long data)