Home
last modified time | relevance | path

Searched refs:folios (Results 1 – 25 of 83) sorted by relevance

1234

/linux-6.15/drivers/dma-buf/
H A Dudmabuf.c29 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 Daccessors.c31 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 Dextent_io.c2931 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 Dcompression.h88 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 Ddefrag.c1158 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 Dextent_io.h121 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 Dzlib.c139 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 Dswap.c165 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 Dtruncate.c73 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 Dswap_state.c253 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 Dgup.c462 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 Dpagevec.h32 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 Dfolio_queue.h237 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 Dsysfs-fs-erofs25 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 Dthpmaps252 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 Dioctl.c254 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 Dfile.c765 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 Dfile-nommu.c235 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 Dcompress.c164 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 Dinode.c74 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 Dfolio_queue.rst13 * 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 Dfs-io-buffered.c42 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 Dfs-io-pagecache.h7 typedef DARRAY(struct folio *) folios; typedef
10 u64, fgf_t, gfp_t, folios *);
/linux-6.15/Documentation/mm/
H A Dunevictable-lru.rst13 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 Dpage.c258 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()

1234