filemap_set_wb_err(9)
π filemap_set_wb_err(9) β like, the Kernel API Manual page you actually want to read
okay so bestie, welcome to filemap_set_wb_err(9) from the Kernel API Manual β yes the whole manual, we're just vibing in one page of it. This one's short and sweet and honestly kind of a baddie: it's the function that writes down "hey, writeback flopped" so userspace can find out later. Let's get into it π«Ά
β¨ NAME β¨
filemap_set_wb_err β sets a writeback error on an address_space. that's it. that's the whole job. iconic minimalism π
πΈ SYNOPSIS πΈ
void filemap_set_wb_err (struct address_space *mapping , int err );
returns nothing (void), takes two things. simplest little signature, ate and left no crumbs π
π ARGUMENTS π
mappingβ the mapping where you're planting the writeback error. this is the spot, bestie πΈerrβ the actual error you're setting in that mapping. the message in the bottle π
π¦ DESCRIPTION π¦
okay so the whole plot: when writeback fails in some way, we must record that error β because otherwise userspace is just out here living its life with no idea. recording it means userspace can be informed when fsync and the like get called. and the goal (the endeavor, as the kernel girlies say) is to report errors on any file that was open at the time of the error π literally any of them. also some internal callers need to know when writeback errors have occurred β not just userspace, the kernel's own friends too.
and then the practical bit: when a writeback error occurs, most filesystems will want to call filemap_set_wb_err to record the error in the mapping, so that it gets automatically reported whenever fsync is called on the file. automatic. no extra work. slay β¨
ngl this is the "write it down so future-you isn't confused" function and honestly? main character energy π
π₯ SEE ALSO π₯
the kernel file lives at ./include/linux/pagemap.h, and here's the whole friend group β every single one, no cap:
filemap_check_wb_err(9)filemap_sample_wb_err(9)file_sample_sb_err(9)mapping_set_error(9)mapping_set_large_folios(9)mapping_align_index(9)mapping_pmd_folio_support(9)folio_flush_mapping(9)folio_inode(9)folio_attach_private(9)folio_change_private(9)folio_detach_private(9)fgf_t(9)fgf_set_order(9)write_begin_get_folio(9)filemap_get_folio(9)filemap_lock_folio(9)filemap_grab_folio(9)find_get_page(9)find_lock_page(9)find_or_create_page(9)grab_cache_page_nowait(9)folio_next_index(9)folio_next_pos(9)folio_file_page(9)folio_contains(9)page_pgoff(9)folio_pos(9)linear_page_delta(9)linear_page_index(9)linear_anon_page_index(9)folio_trylock(9)folio_lock(9)lock_page(9)folio_lock_killable(9)filemap_range_needs_writeback(9)struct readahead_control(9)page_cache_sync_readahead(9)page_cache_async_readahead(9)readahead_folio(9)readahead_pos(9)readahead_length(9)readahead_index(9)readahead_count(9)readahead_batch_length(9)folio_mkwrite_check_truncate(9)i_blocks_per_folio(9)
that's forty-seven entries bestie, and we did not skip a single one ππ iykyk.
π sign-off π
this lil page comes from the source dir ./include/linux, and it's dated October 2026 β that's the version/date energy for this one. go forth and record your writeback errors, you gorgeous kernel dev π§ββοΈβπ
π¦ 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