Lines Matching defs:folio
199 void __flush_dcache_folio(struct address_space *mapping, struct folio *folio)
206 if (!folio_test_highmem(folio)) {
207 __cpuc_flush_dcache_area(folio_address(folio),
208 folio_size(folio));
212 for (i = 0; i < folio_nr_pages(folio); i++) {
213 void *addr = kmap_local_folio(folio,
219 for (i = 0; i < folio_nr_pages(folio); i++) {
220 void *addr = kmap_high_get(folio_page(folio, i));
223 kunmap_high(folio_page(folio, i));
235 flush_pfn_alias(folio_pfn(folio), folio_pos(folio));
238 static void __flush_dcache_aliases(struct address_space *mapping, struct folio *folio)
250 pgoff = folio->index;
251 pgoff_end = pgoff + folio_nr_pages(folio) - 1;
267 pfn = folio_pfn(folio);
268 nr = folio_nr_pages(folio);
288 struct folio *folio;
298 folio = page_folio(pfn_to_page(pfn));
300 mapping = folio_flush_mapping(folio);
304 if (!test_and_set_bit(PG_dcache_clean, &folio->flags))
305 __flush_dcache_folio(mapping, folio);
331 void flush_dcache_folio(struct folio *folio)
339 if (is_zero_pfn(folio_pfn(folio)))
343 if (test_bit(PG_dcache_clean, &folio->flags))
344 clear_bit(PG_dcache_clean, &folio->flags);
348 mapping = folio_flush_mapping(folio);
351 mapping && !folio_mapped(folio))
352 clear_bit(PG_dcache_clean, &folio->flags);
354 __flush_dcache_folio(mapping, folio);
356 __flush_dcache_aliases(mapping, folio);
359 set_bit(PG_dcache_clean, &folio->flags);