filemap_fda..._keep_errors(9)
hey bestie, welcome to the filemap_fda..._keep_errors(9) page from the Kernel API Manual π this one is lowkey iconic if you're into writeback waiting, and yes we're gonna get through every single detail together β¨
πΈ NAME πΈ
filemap_fdatawait_range_keep_errors β wait for writeback to complete π
β¨ SYNOPSIS β¨
here's the exact signature, bestie β copy it character for character, no edits:
int filemap_fdatawait_range_keep_errors (struct address_space *mapping , loff_t start_byte , loff_t end_byte );
π ARGUMENTS π
mappingβ the address space structure to wait for. like, this is the thing you're waiting on until writeback is done πstart_byteβ offset in bytes where the range starts. beginning of the wait zone β¨end_byteβ offset in bytes where the range ends, and yes bestie it is inclusive π«Ά don't forget that part
π DESCRIPTION π
okay so what it actually does: it walks the list of under-writeback pages of the given address space in the given range, and waits for all of them. all of them, no cap π₯
the key difference from filemap_fdatawait_range is that this function does not clear the error status of the address space. that's the whole βkeep errorsβ moment, iykyk π
use this function if callers don't handle errors themselves. expected call sites are system-wide / filesystem-wide data flushers: e.g. sync(2), fsfreeze(8) β iconic flusher behavior only β¨
heads up bestie: it keeps the error status, so don't treat it like the version that clears it π
π¦ SEE ALSO π¦
kernel file: ./mm/filemap.c
the whole reference squad, in order:
filemap_remove_folio(9)filemap_fdatawrite_range(9)filemap_flush_range(9)filemap_flush(9)filemap_range_has_page(9)filemap_fdatawait_range(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_end_private_2(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)
okay that's the whole page, bestie π source/version says ./mm, date says October 2026, and the page is filemap_fda..._keep_errors(9) β go wait on those pages and slay β¨π¦
π¦ 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