Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

NAME

       mpage_writepages - walk the list of dirty pages of the given

SYNOPSIS

       int mpage_writepages  (struct address_space * mapping,
                               struct writeback_control * wbc,
                               get_block_t get_block);

ARGUMENTS

       mapping
              address space structure to write

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

       get_block
              the filesystem’s block mapper function. If this is NULL then use
              a_ops->writepage. Otherwise, go direct-to-BIO.

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.

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.