Name

generic_writepages — walk the list of dirty pages of the given

Synopsis

int generic_writepages (struct address_space *  mapping,
 struct writeback_control *  wbc);

Arguments

mapping

address space structure to write

wbc

subtract the number of written pages from *wbc->nr_to_write

Description

This is a library function, which implements the writepages address_space_operation.

If a page is already under I/O, generic_writepages 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.

Derived from mpage_writepages - if you fix this you should check that also!

Description

This is a library function, which implements the writepages address_space_operation.

If a page is already under I/O, generic_writepages 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.

Derived from mpage_writepages - if you fix this you should check that also!