]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/writeback.h
[ARM] 4577/1: ITE 8152 PCI bridge support
[linux-2.6-omap-h63xx.git] / include / linux / writeback.h
index 56a23a0e7f2eb218a91fd889fb86bbdb3471bcef..c7c3337c3a88c62991194b2f6e87bbb81935d4be 100644 (file)
@@ -1,9 +1,12 @@
 /*
- * include/linux/writeback.h.
+ * include/linux/writeback.h
  */
 #ifndef WRITEBACK_H
 #define WRITEBACK_H
 
+#include <linux/sched.h>
+#include <linux/fs.h>
+
 struct backing_dev_info;
 
 extern spinlock_t inode_lock;
@@ -59,6 +62,8 @@ struct writeback_control {
        unsigned for_reclaim:1;         /* Invoked from the page allocator */
        unsigned for_writepages:1;      /* This is a writepages() call */
        unsigned range_cyclic:1;        /* range_start is cyclic */
+
+       void *fs_private;               /* For use by ->writepages() */
 };
 
 /*
@@ -84,8 +89,7 @@ static inline void wait_on_inode(struct inode *inode)
 int wakeup_pdflush(long nr_pages);
 void laptop_io_completion(void);
 void laptop_sync_completion(void);
-void throttle_vm_writeout(void);
-void writeback_congestion_end(void);
+void throttle_vm_writeout(gfp_t gfp_mask);
 
 /* These are exported to sysctl. */
 extern int dirty_background_ratio;
@@ -110,13 +114,22 @@ balance_dirty_pages_ratelimited(struct address_space *mapping)
        balance_dirty_pages_ratelimited_nr(mapping, 1);
 }
 
+typedef int (*writepage_t)(struct page *page, struct writeback_control *wbc,
+                               void *data);
+
 int pdflush_operation(void (*fn)(unsigned long), unsigned long arg0);
+int generic_writepages(struct address_space *mapping,
+                      struct writeback_control *wbc);
+int write_cache_pages(struct address_space *mapping,
+                     struct writeback_control *wbc, writepage_t writepage,
+                     void *data);
 int do_writepages(struct address_space *mapping, struct writeback_control *wbc);
 int sync_page_range(struct inode *inode, struct address_space *mapping,
                        loff_t pos, loff_t count);
 int sync_page_range_nolock(struct inode *inode, struct address_space *mapping,
                           loff_t pos, loff_t count);
-void set_page_dirty_balance(struct page *page);
+void set_page_dirty_balance(struct page *page, int page_mkwrite);
+void writeback_set_ratelimit(void);
 
 /* pdflush.c */
 extern int nr_pdflush_threads; /* Global so it can be exported to sysctl