]> err.no Git - linux-2.6/blobdiff - include/linux/writeback.h
[PATCH] export/change sync_page_range/_nolock()
[linux-2.6] / include / linux / writeback.h
index 1262cb43c3abcd78553e0b819adf0548fb2c0c33..beaef5c7a0eacaadfb0d2f590dbf75c498f81eb0 100644 (file)
@@ -14,11 +14,13 @@ extern struct list_head inode_unused;
  * Yes, writeback.h requires sched.h
  * No, sched.h is not included from here.
  */
-static inline int current_is_pdflush(void)
+static inline int task_is_pdflush(struct task_struct *task)
 {
-       return current->flags & PF_FLUSHER;
+       return task->flags & PF_FLUSHER;
 }
 
+#define current_is_pdflush()   task_is_pdflush(current)
+
 /*
  * fs/fs-writeback.c
  */
@@ -51,18 +53,13 @@ struct writeback_control {
        loff_t start;
        loff_t end;
 
-       unsigned nonblocking:1;                 /* Don't get stuck on request queues */
-       unsigned encountered_congestion:1;      /* An output: a queue is full */
-       unsigned for_kupdate:1;                 /* A kupdate writeback */
-       unsigned for_reclaim:1;                 /* Invoked from the page allocator */
+       unsigned nonblocking:1;         /* Don't get stuck on request queues */
+       unsigned encountered_congestion:1; /* An output: a queue is full */
+       unsigned for_kupdate:1;         /* A kupdate writeback */
+       unsigned for_reclaim:1;         /* Invoked from the page allocator */
+       unsigned for_writepages:1;      /* This is a writepages() call */
 };
 
-/*
- * ->writepage() return values (make these much larger than a pagesize, in
- * case some fs is returning number-of-bytes-written from writepage)
- */
-#define WRITEPAGE_ACTIVATE     0x80000 /* IO was not started: activate page */
-
 /*
  * fs/fs-writeback.c
  */    
@@ -83,7 +80,7 @@ static inline void wait_on_inode(struct inode *inode)
 /*
  * mm/page-writeback.c
  */
-int wakeup_bdflush(long nr_pages);
+int wakeup_pdflush(long nr_pages);
 void laptop_io_completion(void);
 void laptop_sync_completion(void);
 void throttle_vm_writeout(void);
@@ -106,9 +103,9 @@ void balance_dirty_pages_ratelimited(struct address_space *mapping);
 int pdflush_operation(void (*fn)(unsigned long), unsigned long arg0);
 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, size_t count);
-int sync_page_range_nolock(struct inode *inode, struct address_space
-               *mapping, loff_t pos, size_t count);
+                       loff_t pos, loff_t count);
+int sync_page_range_nolock(struct inode *inode, struct address_space *mapping,
+                          loff_t pos, loff_t count);
 
 /* pdflush.c */
 extern int nr_pdflush_threads; /* Global so it can be exported to sysctl