folio_end_private_2(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… folio_end_private_2(9) β€” a Kernel API Manual moment

okay so bestie, welcome to the <pink>Kernel API Manual</pink> ✨ today's main character is folio_end_private_2(9) and honestly she's a little cleanup queen with a very specific job πŸŽ€


🌸 NAME

folio_end_private_2 β€” clears PG_private_2 and wakes up literally anyone who's been waiting on it πŸ’–


✨ SYNOPSIS

void folio_end_private_2 (struct folio *folio );

🫢 ARGUMENTS

  • folio β€” the folio. that's it. that's the whole argument. she's low maintenance πŸ’…

πŸ”₯ DESCRIPTION

okay so what she does is: clear the PG_private_2 bit on a folio, and wake up any sleepers that are waiting on it 😴➑️😳 and bestie, the folio reference that was being held for PG_private_2 being set? yeah, that gets released too. no lingering attachments, we love a clean exit πŸ¦‹

fr fr, this is, for example, used when a netfs folio is being written to a local disk cache β€” which is what allows writes to the cache for the same folio to be serialised. the way that works is genuinely iconic ngl πŸ‘‘

not me explaining bit flags and disk cache serialisation at the same time β€” but that's literally the whole vibe, iykyk 🧚

πŸ‘‘ SEE ALSO

like, the whole extended friend group πŸ’œ β€” kernel file ./mm/filemap.c and honestly so many siblings:

filemap_remove_folio(9), filemap_fdatawrite_range(9), filemap_flush_range(9), filemap_flush(9), filemap_range_has_page(9), filemap_fdatawait_range(9), filemap_fdatawait_range_keep_errors(9), file_fdatawait_range(9), filemap_fdatawait_keep_errors(9), filemap_write_and_wait_range(9), file_check_and_advance_wb_err(9), file_write_and_wait_range(9), replace_page_cache_folio(9), softleaf_entry_wait_on_locked(9), folio_put_wait_locked(9), folio_unlock(9), folio_end_read(9), folio_wait_private_2(9), folio_wait_private_2_killable(9), folio_end_writeback_no_dropbehind(9), folio_end_writeback(9), __folio_lock(9), page_cache_next_miss(9), page_cache_prev_miss(9), __filemap_get_folio_mpol(9), find_get_entries(9), find_lock_entries(9), filemap_get_folios(9), filemap_get_folios_contig(9), filemap_get_folios_tag(9), filemap_get_folios_dirty(9), filemap_read(9), generic_file_read_iter(9), filemap_splice_read(9), mapping_seek_hole_data(9), filemap_fault(9), read_cache_folio(9), mapping_read_folio_gfp(9), read_cache_page_gfp(9), __generic_file_write_iter(9), generic_file_write_iter(9), filemap_release_folio(9), filemap_invalidate_inode(9), filemap_cachestat(9)


and that's the whole page bestie, you ate that πŸ“

signing off from ./mm, dated October 2026 β€” mwah πŸ’‹

πŸ“¦ where this page comes from