]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
documentation: document the is_dirty_writeback aops callback
authorMel Gorman <mgorman@suse.de>
Fri, 7 Jun 2013 00:08:21 +0000 (10:08 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Fri, 7 Jun 2013 05:42:31 +0000 (15:42 +1000)
Signed-off-by: Mel Gorman <mgorman@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Documentation/filesystems/vfs.txt

index 2a49a09665e96cc2fa5a4d950323b92bafdb4d40..d59181e287b20755282212fbfbcc131f1ea700a7 100644 (file)
@@ -577,6 +577,7 @@ struct address_space_operations {
        int (*launder_page) (struct page *);
        int (*is_partially_uptodate) (struct page *, read_descriptor_t *,
                                        unsigned long);
+       void (*is_dirty_writeback) (struct page *, bool *, bool *);
        int (*error_remove_page) (struct mapping *mapping, struct page *page);
        int (*swap_activate)(struct file *);
        int (*swap_deactivate)(struct file *);
@@ -741,6 +742,15 @@ struct address_space_operations {
        block is up to date then the read can complete without needing the IO
        to bring the whole page up to date.
 
+  is_dirty_writeback: Called by the VM when attempting to reclaim a page.
+       The VM uses dirty and writeback information to determine if it needs
+       to stall to allow flushers a chance to complete some IO. Ordinarily
+       it can use PageDirty and PageWriteback but some filesystems have
+       more complex state (unstable pages in NFS prevent reclaim) or
+       do not set those flags due to locking problems (jbd). This callback
+       allows a filesystem to indicate to the VM if a page should be
+       treated as dirty or writeback for the purposes of stalling.
+
   error_remove_page: normally set to generic_error_remove_page if truncation
        is ok for this address space. Used for memory failure handling.
        Setting this implies you deal with pages going away under you,