:: RootR ::  Hosting Order Map Login   Secure Inter-Network Operations  
 
write_cache_pages(9) - phpMan

Command: man perldoc info search(apropos)  


WRITE_CACHE_PAGES(9)                Memory Management in Linux               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.

       To avoid livelocks (when other process dirties new pages), we first tag pages which should
       be written back with TOWRITE tag and only then start writing them. For data-integrity sync
       we have to be careful so that we do not miss some pages (e.g., because some other process
       has cleared TOWRITE tag we set). The rule we follow is that TOWRITE tag can be cleared
       only by the process clearing the DIRTY tag (and submitting the page for IO).

COPYRIGHT
Kernel Hackers Manual 4.8.                 January 2017                      WRITE_CACHE_PAGES(9)


/man
rootr.net - man pages