folio_end_private_2(9)
π 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms