diff options
author | Mel Gorman <mgorman@suse.de> | 2013-07-03 18:04:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-07-03 19:07:40 -0400 |
commit | 543cc115339baa44fbea877b3d8673aca652622f (patch) | |
tree | f30c129fbf9117fbfae42e4900a898978474d19b /Documentation/filesystems/vfs.txt | |
parent | 26c0c5bf38159673f0ae28c38fc9f90dbeb4d4aa (diff) |
documentation: document the is_dirty_writeback aops callback
Signed-off-by: Mel Gorman <mgorman@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation/filesystems/vfs.txt')
-rw-r--r-- | Documentation/filesystems/vfs.txt | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index fc5d2a1d26c0..f93a88250a44 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
@@ -582,6 +582,7 @@ struct address_space_operations { | |||
582 | int (*launder_page) (struct page *); | 582 | int (*launder_page) (struct page *); |
583 | int (*is_partially_uptodate) (struct page *, read_descriptor_t *, | 583 | int (*is_partially_uptodate) (struct page *, read_descriptor_t *, |
584 | unsigned long); | 584 | unsigned long); |
585 | void (*is_dirty_writeback) (struct page *, bool *, bool *); | ||
585 | int (*error_remove_page) (struct mapping *mapping, struct page *page); | 586 | int (*error_remove_page) (struct mapping *mapping, struct page *page); |
586 | int (*swap_activate)(struct file *); | 587 | int (*swap_activate)(struct file *); |
587 | int (*swap_deactivate)(struct file *); | 588 | int (*swap_deactivate)(struct file *); |
@@ -746,6 +747,15 @@ struct address_space_operations { | |||
746 | block is up to date then the read can complete without needing the IO | 747 | block is up to date then the read can complete without needing the IO |
747 | to bring the whole page up to date. | 748 | to bring the whole page up to date. |
748 | 749 | ||
750 | is_dirty_writeback: Called by the VM when attempting to reclaim a page. | ||
751 | The VM uses dirty and writeback information to determine if it needs | ||
752 | to stall to allow flushers a chance to complete some IO. Ordinarily | ||
753 | it can use PageDirty and PageWriteback but some filesystems have | ||
754 | more complex state (unstable pages in NFS prevent reclaim) or | ||
755 | do not set those flags due to locking problems (jbd). This callback | ||
756 | allows a filesystem to indicate to the VM if a page should be | ||
757 | treated as dirty or writeback for the purposes of stalling. | ||
758 | |||
749 | error_remove_page: normally set to generic_error_remove_page if truncation | 759 | error_remove_page: normally set to generic_error_remove_page if truncation |
750 | is ok for this address space. Used for memory failure handling. | 760 | is ok for this address space. Used for memory failure handling. |
751 | Setting this implies you deal with pages going away under you, | 761 | Setting this implies you deal with pages going away under you, |