write_cache_pages(9)
NAME
write_cache_pages - walk the list of dirty pages of the given address
space and write all of them.
SYNOPSIS
int write_cache_pages(struct address_space * mapping,
struct writeback_control * wbc,
writepage_t writepage, void * data);
ARGUMENTS
- mapping
- address space structure to write
- wbc
- subtract the number of written pages from *wbc->nr_to_write
- writepage
- function called for each page
- data
- data passed to writepage function
DESCRIPTION
If a page is already under I/O, write_cache_pages skips it, even if
itīs dirty. This is desirable behaviour for memory-cleaning writeback,
but it is INCORRECT for data-integrity system calls such as fsync.
fsync and msync need to guarantee that all the data which was dirty at
the time the call was made get new I/O started against them. If
wbc->sync_mode is WB_SYNC_ALL then we were called for data integrity
and we must wait for existing IO to complete.