folio_next(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

folio_next β€” move to the next physical folio. okay bestie, this is folio_next(9) from the Kernel API Manual, and it's here to help you scoot from one folio to the next when your memory is actually physically contiguous. ✨

✨ SYNOPSIS ✨

No cap, here's the exact signature:

struct folio * folio_next (struct folio *folio );

🌸 ARGUMENTS 🌸

  • folio β€” the folio we're currently operating on. That's your main character folio right now, bestie. 🫢

πŸ’… DESCRIPTION πŸ’…

Okay so picture this: you've got physically contiguous memory that may span more than one folio β€” like, for example, a struct bio_vec β€” and you need to move from one folio to the next. Use this function for that, periodt. It's giving β€œnext physical folio, please.” πŸ’…

But do not use it if the memory is only virtually contiguous, because the folios are almost certainly not adjacent to each other. The vibes will be off and the whole thing will not slay. This function is the folio equivalent to writing page++. Iconic. 🌟

πŸ¦‹ CONTEXT πŸ¦‹

We assume that the folios are refcounted and/or locked at a higher level, and this function does not adjust the reference counts. So don't expect a refcount glow-up here β€” that's not this function's job. No cap. πŸ’€

πŸ”₯ RETURN πŸ”₯

The next struct folio. That's the whole return, bestie. πŸ’–

πŸ’– SEE ALSO πŸ’–

Kernel file ./include/linux/mm.h is home base, and the whole squad is: folio_page_idx(9), vma_flag_t(9), fault_flag_allow_retry_first(9), vma_kernel_pagesize(9), folio_order(9), folio_reset_order(9), folio_mapcount(9), folio_mapped(9), thp_order(9), thp_size(9), folio_get(9), folio_put(9), folio_put_refs(9), folios_put(9), vma_flags_is_cow_mapping(9), vma_is_cow_mapping(9), vma_desc_is_cow_mapping(9), folio_pfn(9), folio_mk_pte(9), folio_mk_pmd(9), folio_mk_pud(9), folio_maybe_dma_pinned(9), is_zero_page(9), is_zero_folio(9), folio_nr_pages(9), folio_shift(9), folio_size(9), folio_maybe_mapped_shared(9), folio_expected_ref_count(9), zap_vma(9), ptdesc_address(9), ptdesc_set_kernel(9), ptdesc_clear_kernel(9), ptdesc_test_kernel(9), pagetable_alloc(9), pagetable_free(9), vma_lookup(9), vma_start_pgoff(9), vma_end_pgoff(9), vma_last_pgoff(9), vma_start_anon_pgoff(9), vma_end_anon_pgoff(9), vma_last_anon_pgoff(9), mmap_action_remap(9), mmap_action_remap_full(9), mmap_action_ioremap(9), mmap_action_ioremap_full(9), mmap_action_simple_ioremap(9), mmap_action_map_kernel_pages(9), mmap_action_map_kernel_pages_full(9), range_is_subset(9), range_in_vma(9), range_in_vma_desc(9), clear_pages(9).

byeee πŸŽ€ β€” source/version ./include/linux, date October 2026. go be iconic with your folios 🫢

πŸ“¦ where this page comes from