folio_put(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨ β€” folio_put(9) from the Kernel API Manual ✨

okay so bestie, this is folio_put(9), and its whole job is literally to decrement the reference count on a folio. That's the vibe. That's the mission. πŸ’…


🌸 SYNOPSIS 🌸

void folio_put (struct folio *folio );

πŸŽ€ ARGUMENTS πŸŽ€

  • folio β€” the folio. That's it. She's simple, she's iconic, she's the only argument. 🫢

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so hear me out: if the folio's reference count reaches zero, the memory will be released back to the page allocator and may be used by another allocation immediately. Do not access the memory or the struct folio after calling folio_put unless you can be sure that it wasn't the last reference. like, fr fr, do not touch it after. That is the warning, bestie. 😭

⭐ CONTEXT ⭐

May be called in process or interrupt context, but not in NMI context. May be called while holding a spinlock. So: process context? slay. interrupt context? slay. NMI context? absolutely not, bestie. spinlock held? also fine. 🌈

πŸ’– SEE ALSO πŸ’–

Kernel file ./include/linux/mm.h β€” and then a whole friend group of references, all here, no cap: 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_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_next(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).


xoxo, this page came from source/version ./include/linux, dated October 2026 β€” folio_put(9) out, bestie πŸŽ€πŸ’–

πŸ“¦ where this page comes from