| /linux-6.15/drivers/dma-buf/ |
| H A D | udmabuf.c | 29 struct folio **folios; member 217 ubuf->folios = kvmalloc_array(pgcnt, sizeof(*ubuf->folios), GFP_KERNEL); in init_udmabuf() 218 if (!ubuf->folios) in init_udmabuf() 238 kvfree(ubuf->folios); in deinit_udmabuf() 358 ubuf->folios[upgcnt] = folios[cur_folio]; in udmabuf_pin_folios() 385 struct folio **folios = NULL; in udmabuf_create() local 420 folios = kvmalloc_array(max_nr_folios, sizeof(*folios), GFP_KERNEL); in udmabuf_create() 421 if (!folios) { in udmabuf_create() 444 list[i].size, folios); in udmabuf_create() 468 kvfree(folios); in udmabuf_create() [all …]
|
| /linux-6.15/fs/btrfs/ |
| H A D | accessors.c | 31 token->kaddr = folio_address(eb->folios[0]); in btrfs_init_map_token() 80 token->kaddr = folio_address(token->eb->folios[idx]); \ 86 token->kaddr = folio_address(token->eb->folios[idx + 1]); \ 99 char *kaddr = folio_address(eb->folios[idx]); \ 109 kaddr = folio_address(eb->folios[idx + 1]); \ 135 token->kaddr = folio_address(token->eb->folios[idx]); \ 144 token->kaddr = folio_address(token->eb->folios[idx + 1]); \ 156 char *kaddr = folio_address(eb->folios[idx]); \ 170 kaddr = folio_address(eb->folios[idx + 1]); \
|
| H A D | extent_io.c | 2931 if (eb->folios[i]) { in alloc_dummy_extent_buffer() 2933 folio_put(eb->folios[i]); in alloc_dummy_extent_buffer() 3148 ASSERT(eb->folios[i]); in attach_eb_folio_to_filemap() 3319 folio = eb->folios[i]; in alloc_extent_buffer() 3375 folio_unlock(eb->folios[i]); in alloc_extent_buffer() 3397 ASSERT(eb->folios[i]); in alloc_extent_buffer() 3399 folio_unlock(eb->folios[i]); in alloc_extent_buffer() 3400 folio_put(eb->folios[i]); in alloc_extent_buffer() 3401 eb->folios[i] = NULL; in alloc_extent_buffer() 3588 folio_lock(eb->folios[0]); in set_extent_buffer_dirty() [all …]
|
| H A D | compression.h | 88 u64 start, struct folio **folios, unsigned long *out_folios, 153 u64 start, struct folio **folios, unsigned long *out_folios, 164 u64 start, struct folio **folios, unsigned long *out_folios, 174 u64 start, struct folio **folios, unsigned long *out_folios,
|
| H A D | defrag.c | 1158 struct folio **folios, int nr_pages, in defrag_one_locked_target() argument 1167 unsigned long first_index = folios[0]->index; in defrag_one_locked_target() 1184 folio_clear_checked(folios[i]); in defrag_one_locked_target() 1201 struct folio **folios; in defrag_one_range() local 1213 if (!folios) in defrag_one_range() 1219 if (IS_ERR(folios[i])) { in defrag_one_range() 1220 ret = PTR_ERR(folios[i]); in defrag_one_range() 1226 folio_wait_writeback(folios[i]); in defrag_one_range() 1262 folio_unlock(folios[i]); in defrag_one_range() 1263 folio_put(folios[i]); in defrag_one_range() [all …]
|
| H A D | extent_io.h | 121 struct folio *folios[INLINE_EXTENT_BUFFER_PAGES]; member 168 return offset_in_folio(eb->folios[0], offset + eb->start); in get_eb_offset_in_folio() 301 if (!eb->folios[0]) in num_extent_folios() 303 if (folio_order(eb->folios[0])) in num_extent_folios()
|
| H A D | zlib.c | 139 u64 start, struct folio **folios, unsigned long *out_folios, in zlib_compress_folios() argument 178 folios[0] = out_folio; in zlib_compress_folios() 264 folios[nr_folios] = out_folio; in zlib_compress_folios() 300 folios[nr_folios] = out_folio; in zlib_compress_folios()
|
| /linux-6.15/mm/ |
| H A D | swap.c | 165 struct folio *folio = fbatch->folios[i]; in folio_batch_move_lru() 370 struct folio *batch_folio = fbatch->folios[i]; in __lru_cache_activate_folio() 947 for (i = 0, j = 0; i < folios->nr; i++) { in folios_put_refs() 948 struct folio *folio = folios->folios[i]; in folios_put_refs() 980 folios->folios[j] = folio; in folios_put_refs() 986 folio_batch_reinit(folios); in folios_put_refs() 990 folios->nr = j; in folios_put_refs() 991 mem_cgroup_uncharge_folios(folios); in folios_put_refs() 992 free_unref_folios(folios); in folios_put_refs() 1070 struct folio *folio = fbatch->folios[i]; in folio_batch_remove_exceptionals() [all …]
|
| H A D | truncate.c | 73 if (xa_is_value(fbatch->folios[j])) in truncate_folio_batch_exceptionals() 81 if (xa_is_value(fbatch->folios[i])) { in truncate_folio_batch_exceptionals() 379 truncate_cleanup_folio(fbatch.folios[i]); in truncate_inode_pages_range() 382 folio_unlock(fbatch.folios[i]); in truncate_inode_pages_range() 426 struct folio *folio = fbatch.folios[i]; in truncate_inode_pages_range() 525 struct folio *folio = fbatch.folios[i]; in mapping_try_invalidate() 668 struct folio *folio = fbatch.folios[i]; in invalidate_inode_pages2_range()
|
| H A D | swap_state.c | 253 struct folio_batch folios; in free_pages_and_swap_cache() local 256 folio_batch_init(&folios); in free_pages_and_swap_cache() 261 refs[folios.nr] = 1; in free_pages_and_swap_cache() 264 refs[folios.nr] = encoded_nr_pages(pages[++i]); in free_pages_and_swap_cache() 266 if (folio_batch_add(&folios, folio) == 0) in free_pages_and_swap_cache() 267 folios_put_refs(&folios, refs); in free_pages_and_swap_cache() 269 if (folios.nr) in free_pages_and_swap_cache() 270 folios_put_refs(&folios, refs); in free_pages_and_swap_cache()
|
| H A D | gup.c | 462 if (folios[i] != folios[j]) in unpin_folios() 465 if (folios[i]) in unpin_folios() 466 gup_put_folio(folios[i], j - i, FOLL_PIN); in unpin_folios() 2293 struct folio **folios; member 2303 return pofs->folios[i]; in pofs_get_folio() 2315 unpin_folios(pofs->folios, pofs->nr_entries); in pofs_unpin() 2468 struct folio **folios) in check_and_migrate_movable_folios() argument 2471 .folios = folios, in check_and_migrate_movable_folios() 2502 struct folio **folios) in check_and_migrate_movable_folios() argument 3724 folios[nr_folios] = folio; in memfd_pin_folios() [all …]
|
| /linux-6.15/include/linux/ |
| H A D | pagevec.h | 32 struct folio *folios[PAGEVEC_SIZE]; member 77 fbatch->folios[fbatch->nr++] = folio; in folio_batch_add() 93 return fbatch->folios[fbatch->i++]; in folio_batch_next()
|
| H A D | folio_queue.h | 237 folioq->vec.folios[slot] = folio; in folioq_append() 259 folioq->vec.folios[slot] = folio; in folioq_append_mark() 277 return folioq->vec.folios[slot]; in folioq_folio() 318 folioq->vec.folios[slot] = NULL; in folioq_clear()
|
| /linux-6.15/Documentation/ABI/testing/ |
| H A D | sysfs-fs-erofs | 25 compressed folios: 27 - 1 : invalidate cached compressed folios 29 - 3 : drop in-memory pclusters and cached compressed folios
|
| /linux-6.15/tools/mm/ |
| H A D | thpmaps | 252 folios = indexes[index_next:index_end][heads[index_next:index_end]] 256 nr = (int(folios[0]) if len(folios) else index_end) - index_next 261 if len(folios): 264 nr = index_end - int(folios[-1]) 265 folios = folios[:-1] 270 if len(folios): 271 folio_nrs = np.append(np.diff(folios), np.uint64(index_end - folios[-1])) 273 for index, order in zip(folios, folio_orders):
|
| /linux-6.15/fs/fuse/ |
| H A D | ioctl.c | 254 ap.folios = fuse_folios_alloc(fm->fc->max_pages, GFP_KERNEL, &ap.descs); in fuse_do_ioctl() 256 if (!ap.folios || !iov_page) in fuse_do_ioctl() 310 ap.folios[ap.num_folios] = folio_alloc(GFP_KERNEL | __GFP_HIGHMEM, 0); in fuse_do_ioctl() 311 if (!ap.folios[ap.num_folios]) in fuse_do_ioctl() 330 c = copy_folio_from_iter(ap.folios[i], 0, PAGE_SIZE, &ii); in fuse_do_ioctl() 368 vaddr = kmap_local_folio(ap.folios[0], 0); in fuse_do_ioctl() 397 c = copy_folio_to_iter(ap.folios[i], 0, PAGE_SIZE, &ii); in fuse_do_ioctl() 405 folio_put(ap.folios[--ap.num_folios]); in fuse_do_ioctl() 406 kfree(ap.folios); in fuse_do_ioctl()
|
| H A D | file.c | 765 kfree(ia->ap.folios); in fuse_io_free() 883 .ap.folios = &folio, in fuse_do_readfolio() 1329 if (!ap->folios) { in fuse_perform_write() 1351 kfree(ap->folios); in fuse_perform_write() 1848 kfree(ap->folios); in fuse_writepage_free() 2110 if (!ap->folios) { in fuse_writepage_args_alloc() 2245 if (!folios) in fuse_pages_realloc() 2248 memcpy(folios, ap->folios, sizeof(struct folio *) * ap->num_folios); in fuse_pages_realloc() 2250 kfree(ap->folios); in fuse_pages_realloc() 2251 ap->folios = folios; in fuse_pages_realloc() [all …]
|
| /linux-6.15/fs/ramfs/ |
| H A D | file-nommu.c | 235 ret = (unsigned long) folio_address(fbatch.folios[0]); in ramfs_nommu_get_unmapped_area() 236 pfn = folio_pfn(fbatch.folios[0]); in ramfs_nommu_get_unmapped_area() 240 if (pfn + nr_pages != folio_pfn(fbatch.folios[loop])) { in ramfs_nommu_get_unmapped_area() 244 nr_pages += folio_nr_pages(fbatch.folios[loop]); in ramfs_nommu_get_unmapped_area()
|
| /linux-6.15/fs/smb/client/ |
| H A D | compress.c | 164 struct folio *folios[16], *folio; in collect_sample() local 174 nr = xa_extract(iter->xarray, (void **)folios, index, last, ARRAY_SIZE(folios), in collect_sample() 180 folio = folios[i]; in collect_sample() 209 } while (nr == ARRAY_SIZE(folios)); in collect_sample()
|
| /linux-6.15/fs/orangefs/ |
| H A D | inode.c | 74 struct folio **folios; member 93 folio_start_writeback(ow->folios[i]); in orangefs_writepages_work() 94 bvec_set_folio(&ow->bv[i], ow->folios[i], in orangefs_writepages_work() 115 wrp = folio_detach_private(ow->folios[i]); in orangefs_writepages_work() 117 folio_end_writeback(ow->folios[i]); in orangefs_writepages_work() 118 folio_unlock(ow->folios[i]); in orangefs_writepages_work() 144 ow->folios[ow->nfolios++] = folio; in orangefs_writepages_callback() 156 ow->folios[ow->nfolios++] = folio; in orangefs_writepages_callback() 192 if (!ow->folios) { in orangefs_writepages() 198 kfree(ow->folios); in orangefs_writepages() [all …]
|
| /linux-6.15/Documentation/core-api/ |
| H A D | folio_queue.rst | 13 * Adding and removing folios 24 The folio_queue struct forms a single segment in a segmented list of folios 68 the number of folios added. 71 Adding and removing folios 134 of folios added to a segments and the third is a shorthand to indicate if the 137 Not that the count and fullness are not affected by clearing folios from the 197 last segment is reached and the folios it refers to are entirely consumed by
|
| /linux-6.15/fs/bcachefs/ |
| H A D | fs-io-buffered.c | 42 folios folios; member 54 darray_push(&iter->folios, folio)) { in readpages_iter_init() 58 return iter->folios.nr ? 0 : -ENOMEM; in readpages_iter_init() 69 if (iter->idx >= iter->folios.nr) in readpage_iter_peek() 71 return iter->folios.data[iter->idx]; in readpage_iter_peek() 301 readpages_iter.folios.nr - in bch2_readahead() 324 darray_exit(&readpages_iter.folios); in bch2_readahead() 815 static noinline void folios_trunc(folios *fs, struct folio **fi) in folios_trunc() 832 folios fs; in __bch2_buffered_write()
|
| H A D | fs-io-pagecache.h | 7 typedef DARRAY(struct folio *) folios; typedef 10 u64, fgf_t, gfp_t, folios *);
|
| /linux-6.15/Documentation/mm/ |
| H A D | unevictable-lru.rst | 13 folios. 28 folios and to hide these folios from vmscan. This mechanism is based on a patch 75 (1) We get to "treat unevictable folios just like we treat other folios in the 80 (2) We want to be able to migrate unevictable folios between nodes for memory 82 can only migrate folios that it can successfully isolate from the LRU 84 maintain folios elsewhere than on an LRU-like list, where they can be 88 anonymous, swap-backed folios. This differentiation is only important 89 while the folios are, in fact, evictable. 180 folio_evictable() also checks for mlocked folios by calling 195 "cull" such folios that it encounters: that is, it diverts those folios to the [all …]
|
| /linux-6.15/fs/nilfs2/ |
| H A D | page.c | 258 struct folio *folio = fbatch.folios[i], *dfolio; in nilfs_copy_dirty_pages() 312 struct folio *folio = fbatch.folios[i], *dfolio; in nilfs_copy_back_pages() 372 struct folio *folio = fbatch.folios[i]; in nilfs_clear_dirty_pages() 531 folio = fbatch.folios[i]; in nilfs_find_uncommitted_extent()
|