/linux-master/include/linux/ |
H A D | pagevec.h | 37 * @fbatch: The folio batch. 41 static inline void folio_batch_init(struct folio_batch *fbatch) argument 43 fbatch->nr = 0; 44 fbatch->i = 0; 45 fbatch->percpu_pvec_drained = false; 48 static inline void folio_batch_reinit(struct folio_batch *fbatch) argument 50 fbatch->nr = 0; 51 fbatch->i = 0; 54 static inline unsigned int folio_batch_count(struct folio_batch *fbatch) argument 56 return fbatch 59 folio_batch_space(struct folio_batch *fbatch) argument 74 folio_batch_add(struct folio_batch *fbatch, struct folio *folio) argument 89 folio_batch_next(struct folio_batch *fbatch) argument 98 folio_batch_release(struct folio_batch *fbatch) argument [all...] |
H A D | pagemap.h | 858 pgoff_t end, struct folio_batch *fbatch); 860 pgoff_t *start, pgoff_t end, struct folio_batch *fbatch); 862 pgoff_t end, xa_mark_t tag, struct folio_batch *fbatch); 1197 struct folio_batch *fbatch);
|
H A D | writeback.h | 83 struct folio_batch fbatch; member in struct:writeback_control
|
/linux-master/mm/ |
H A D | swap.c | 50 /* Protecting only lru_rotate.fbatch which requires disabling interrupts */ 53 struct folio_batch fbatch; member in struct:lru_rotate 154 struct folio_batch fbatch; local 157 folio_batch_init(&fbatch); 166 if (folio_batch_add(&fbatch, folio) > 0) 168 free_unref_folios(&fbatch); 171 if (fbatch.nr) 172 free_unref_folios(&fbatch); 219 static void folio_batch_move_lru(struct folio_batch *fbatch, move_fn_t move_fn) argument 225 for (i = 0; i < folio_batch_count(fbatch); 243 folio_batch_add_and_move(struct folio_batch *fbatch, struct folio *folio, move_fn_t move_fn) argument 273 struct folio_batch *fbatch; local 361 struct folio_batch *fbatch = &per_cpu(cpu_fbatches.activate, cpu); local 371 struct folio_batch *fbatch; local 401 struct folio_batch *fbatch; local 518 struct folio_batch *fbatch; local 664 struct folio_batch *fbatch = &fbatches->lru_add; local 707 struct folio_batch *fbatch; local 732 struct folio_batch *fbatch; local 754 struct folio_batch *fbatch; local 1052 struct folio_batch fbatch; local 1088 __folio_batch_release(struct folio_batch *fbatch) argument 1107 folio_batch_remove_exceptionals(struct folio_batch *fbatch) argument [all...] |
H A D | truncate.c | 60 struct folio_batch *fbatch, pgoff_t *indices) 69 for (j = 0; j < folio_batch_count(fbatch); j++) 70 if (xa_is_value(fbatch->folios[j])) 73 if (j == folio_batch_count(fbatch)) 82 for (i = j; i < folio_batch_count(fbatch); i++) { 83 struct folio *folio = fbatch->folios[i]; 87 fbatch->folios[j++] = folio; 105 fbatch->nr = j; 325 struct folio_batch fbatch; local 352 folio_batch_init(&fbatch); 59 truncate_folio_batch_exceptionals(struct address_space *mapping, struct folio_batch *fbatch, pgoff_t *indices) argument 492 struct folio_batch fbatch; local 613 struct folio_batch fbatch; local [all...] |
H A D | mlock.c | 33 struct folio_batch fbatch; member in struct:mlock_fbatch 186 static void mlock_folio_batch(struct folio_batch *fbatch) argument 193 for (i = 0; i < folio_batch_count(fbatch); i++) { 194 folio = fbatch->folios[i]; 197 fbatch->folios[i] = folio; 209 folios_put(fbatch); 214 struct folio_batch *fbatch; local 217 fbatch = this_cpu_ptr(&mlock_fbatch.fbatch); 218 if (folio_batch_count(fbatch)) 225 struct folio_batch *fbatch; local 244 struct folio_batch *fbatch; local 269 struct folio_batch *fbatch; local 292 struct folio_batch *fbatch; local [all...] |
H A D | filemap.c | 276 * @fbatch: batch of folios to delete 279 * @fbatch from the mapping. The function expects @fbatch to be sorted 281 * It tolerates holes in @fbatch (mapping entries at those indices are not 287 struct folio_batch *fbatch) 289 XA_STATE(xas, &mapping->i_pages, fbatch->folios[0]->index); 296 if (i >= folio_batch_count(fbatch)) 309 if (folio != fbatch->folios[i]) { 311 fbatch->folios[i]->index, folio); 328 struct folio_batch *fbatch) 286 page_cache_delete_batch(struct address_space *mapping, struct folio_batch *fbatch) argument 327 delete_from_page_cache_batch(struct address_space *mapping, struct folio_batch *fbatch) argument 515 struct folio_batch fbatch; local 2014 find_get_entries(struct address_space *mapping, pgoff_t *start, pgoff_t end, struct folio_batch *fbatch, pgoff_t *indices) argument 2060 find_lock_entries(struct address_space *mapping, pgoff_t *start, pgoff_t end, struct folio_batch *fbatch, pgoff_t *indices) argument 2118 filemap_get_folios(struct address_space *mapping, pgoff_t *start, pgoff_t end, struct folio_batch *fbatch) argument 2140 filemap_get_folios_contig(struct address_space *mapping, pgoff_t *start, pgoff_t end, struct folio_batch *fbatch) argument 2211 filemap_get_folios_tag(struct address_space *mapping, pgoff_t *start, pgoff_t end, xa_mark_t tag, struct folio_batch *fbatch) argument 2278 filemap_get_read_batch(struct address_space *mapping, pgoff_t index, pgoff_t max, struct folio_batch *fbatch) argument 2427 filemap_create_folio(struct file *file, struct address_space *mapping, pgoff_t index, struct folio_batch *fbatch) argument 2484 filemap_get_pages(struct kiocb *iocb, size_t count, struct folio_batch *fbatch, bool need_uptodate) argument 2573 struct folio_batch fbatch; local 2843 struct folio_batch fbatch; local [all...] |
H A D | shmem.c | 917 struct folio_batch fbatch; local 920 folio_batch_init(&fbatch); 925 filemap_get_folios(mapping, &index, ~0UL, &fbatch)) { 926 check_move_unevictable_folios(&fbatch); 927 folio_batch_release(&fbatch); 971 struct folio_batch fbatch; local 985 folio_batch_init(&fbatch); 988 &fbatch, indices)) { 989 for (i = 0; i < folio_batch_count(&fbatch); i++) { 990 folio = fbatch 1273 shmem_find_swap_entries(struct address_space *mapping, pgoff_t start, struct folio_batch *fbatch, pgoff_t *indices, unsigned int type) argument 1315 shmem_unuse_swap_entries(struct inode *inode, struct folio_batch *fbatch, pgoff_t *indices) argument 1349 struct folio_batch fbatch; local [all...] |
H A D | page-writeback.c | 2415 folio = folio_batch_next(&wbc->fbatch); 2417 folio_batch_release(&wbc->fbatch); 2420 wbc_to_tag(wbc), &wbc->fbatch); 2421 folio = folio_batch_next(&wbc->fbatch); 2466 folio_batch_init(&wbc->fbatch); 2546 folio_batch_release(&wbc->fbatch);
|
/linux-master/fs/nilfs2/ |
H A D | page.c | 246 struct folio_batch fbatch; local 251 folio_batch_init(&fbatch); 254 PAGECACHE_TAG_DIRTY, &fbatch)) 257 for (i = 0; i < folio_batch_count(&fbatch); i++) { 258 struct folio *folio = fbatch.folios[i], *dfolio; 282 folio_batch_release(&fbatch); 301 struct folio_batch fbatch; local 305 folio_batch_init(&fbatch); 307 n = filemap_get_folios(smap, &start, ~0UL, &fbatch); 311 for (i = 0; i < folio_batch_count(&fbatch); 364 struct folio_batch fbatch; local 500 struct folio_batch fbatch; local [all...] |
H A D | segment.c | 702 struct folio_batch fbatch; local 716 folio_batch_init(&fbatch); 720 PAGECACHE_TAG_DIRTY, &fbatch)) 723 for (i = 0; i < folio_batch_count(&fbatch); i++) { 725 struct folio *folio = fbatch.folios[i]; 747 folio_batch_release(&fbatch); 753 folio_batch_release(&fbatch); 763 struct folio_batch fbatch; local 770 folio_batch_init(&fbatch); 773 (pgoff_t)-1, PAGECACHE_TAG_DIRTY, &fbatch)) { [all...] |
/linux-master/fs/ramfs/ |
H A D | file-nommu.c | 208 struct folio_batch fbatch; local 224 folio_batch_init(&fbatch); 228 ULONG_MAX, &fbatch); 235 ret = (unsigned long) folio_address(fbatch.folios[0]); 236 pfn = folio_pfn(fbatch.folios[0]); 240 if (pfn + nr_pages != folio_pfn(fbatch.folios[loop])) { 244 nr_pages += folio_nr_pages(fbatch.folios[loop]); 250 folio_batch_release(&fbatch); 256 folio_batch_release(&fbatch);
|
/linux-master/fs/bcachefs/ |
H A D | fs-io-pagecache.c | 275 struct folio_batch fbatch; local 281 folio_batch_init(&fbatch); 284 &index, end_index, &fbatch)) { 285 for (i = 0; i < folio_batch_count(&fbatch); i++) { 286 struct folio *folio = fbatch.folios[i]; 307 folio_batch_release(&fbatch); 319 struct folio_batch fbatch; local 326 folio_batch_init(&fbatch); 329 &index, end_index, &fbatch)) { 330 for (unsigned i = 0; i < folio_batch_count(&fbatch); 674 struct folio_batch fbatch; local [all...] |
/linux-master/drivers/gpu/drm/ |
H A D | drm_gem.c | 505 static void drm_gem_check_release_batch(struct folio_batch *fbatch) argument 507 check_move_unevictable_folios(fbatch); 508 __folio_batch_release(fbatch); 542 struct folio_batch fbatch; local 589 folio_batch_init(&fbatch); 593 if (!folio_batch_add(&fbatch, f)) 594 drm_gem_check_release_batch(&fbatch); 597 if (fbatch.nr) 598 drm_gem_check_release_batch(&fbatch); 617 struct folio_batch fbatch; local [all...] |
/linux-master/fs/gfs2/ |
H A D | aops.c | 201 * @fbatch: The batch of folios 209 struct folio_batch *fbatch, 218 int nr_folios = folio_batch_count(fbatch); 221 size += folio_size(fbatch->folios[i]); 229 struct folio *folio = fbatch->folios[i]; 312 struct folio_batch fbatch; local 322 folio_batch_init(&fbatch); 349 tag, &fbatch); 353 ret = gfs2_write_jdata_batch(mapping, wbc, &fbatch, 359 folio_batch_release(&fbatch); 207 gfs2_write_jdata_batch(struct address_space *mapping, struct writeback_control *wbc, struct folio_batch *fbatch, pgoff_t *done_index) argument [all...] |
/linux-master/drivers/gpu/drm/i915/gem/ |
H A D | i915_gem_shmem.c | 25 static void check_release_folio_batch(struct folio_batch *fbatch) argument 27 check_move_unevictable_folios(fbatch); 28 __folio_batch_release(fbatch); 36 struct folio_batch fbatch; local 42 folio_batch_init(&fbatch); 54 if (!folio_batch_add(&fbatch, folio)) 55 check_release_folio_batch(&fbatch); 57 if (fbatch.nr) 58 check_release_folio_batch(&fbatch);
|
/linux-master/fs/netfs/ |
H A D | buffered_write.c | 780 struct folio_batch fbatch; local 788 folio_batch_init(&fbatch); 857 if (!folio_batch_add(&fbatch, folio)) 869 if (!folio_batch_count(&fbatch)) 872 for (i = 0; i < folio_batch_count(&fbatch); i++) { 873 folio = fbatch.folios[i]; 883 folio_batch_release(&fbatch);
|
/linux-master/fs/ceph/ |
H A D | addr.c | 932 struct folio_batch fbatch; local 962 folio_batch_init(&fbatch); 1029 end, tag, &fbatch); 1034 page = &fbatch.folios[i]->page; 1144 /* note position of first page in fbatch */ 1175 fbatch.folios[i] = NULL; 1184 /* shift unused page to beginning of fbatch */ 1186 if (!fbatch.folios[j]) 1189 fbatch.folios[n] = fbatch [all...] |
/linux-master/drivers/gpu/drm/i915/ |
H A D | i915_gpu_error.c | 191 static void pool_fini(struct folio_batch *fbatch) argument 193 folio_batch_release(fbatch); 196 static int pool_refill(struct folio_batch *fbatch, gfp_t gfp) argument 198 while (folio_batch_space(fbatch)) { 205 folio_batch_add(fbatch, folio); 211 static int pool_init(struct folio_batch *fbatch, gfp_t gfp) argument 215 folio_batch_init(fbatch); 217 err = pool_refill(fbatch, gfp); 219 pool_fini(fbatch); 224 static void *pool_alloc(struct folio_batch *fbatch, gfp_ argument 235 pool_free(struct folio_batch *fbatch, void *addr) argument [all...] |
/linux-master/fs/f2fs/ |
H A D | node.c | 1542 struct folio_batch fbatch; local 1546 folio_batch_init(&fbatch); 1551 &fbatch))) { 1555 struct page *page = &fbatch.folios[i]->page; 1559 folio_batch_release(&fbatch); 1590 folio_batch_release(&fbatch); 1758 struct folio_batch fbatch; local 1772 folio_batch_init(&fbatch); 1777 &fbatch))) { 1781 struct page *page = &fbatch 1917 struct folio_batch fbatch; local 1965 struct folio_batch fbatch; local [all...] |
H A D | checkpoint.c | 425 struct folio_batch fbatch; local 433 folio_batch_init(&fbatch); 439 PAGECACHE_TAG_DIRTY, &fbatch))) { 443 struct folio *folio = fbatch.folios[i]; 447 folio_nr_pages(fbatch.folios[i-1])) { 448 folio_batch_release(&fbatch); 480 folio_batch_release(&fbatch);
|
/linux-master/fs/btrfs/ |
H A D | extent_io.c | 213 struct folio_batch fbatch; local 216 folio_batch_init(&fbatch); 221 end_index, &fbatch); 223 struct folio *folio = fbatch.folios[i]; 228 folio_batch_release(&fbatch); 259 struct folio_batch fbatch; local 264 folio_batch_init(&fbatch); 269 end_index, &fbatch); 274 struct folio *folio = fbatch.folios[i]; 293 folio_batch_release(&fbatch); 1912 struct folio_batch fbatch; local 2040 struct folio_batch fbatch; local [all...] |
H A D | compression.c | 287 struct folio_batch fbatch; local 295 folio_batch_init(&fbatch); 298 &fbatch); 304 struct folio *folio = fbatch.folios[i]; 309 folio_batch_release(&fbatch);
|
/linux-master/fs/btrfs/tests/ |
H A D | extent-io-tests.c | 25 struct folio_batch fbatch; local 32 folio_batch_init(&fbatch); 36 end_index, &fbatch); 38 struct folio *folio = fbatch.folios[i]; 48 folio_batch_release(&fbatch);
|
/linux-master/fs/hugetlbfs/ |
H A D | inode.c | 653 struct folio_batch fbatch; local 658 folio_batch_init(&fbatch); 660 while (filemap_get_folios(mapping, &next, end - 1, &fbatch)) { 661 for (i = 0; i < folio_batch_count(&fbatch); ++i) { 662 struct folio *folio = fbatch.folios[i]; 678 folio_batch_release(&fbatch);
|