write_cache_pages
Prev | More Memory Management Functions | Next

## 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.

Prev | Up | Next
balance_dirty_pages_ratelimited_nr | Home | generic_writepages