atomic: use <linux/atomic.h>
[pandora-kernel.git] / include / linux / backing-dev.h
index 96f4094..3b2f9cb 100644 (file)
@@ -16,7 +16,7 @@
 #include <linux/sched.h>
 #include <linux/timer.h>
 #include <linux/writeback.h>
-#include <asm/atomic.h>
+#include <linux/atomic.h>
 
 struct page;
 struct device;
@@ -40,6 +40,7 @@ typedef int (congested_fn)(void *, int);
 enum bdi_stat_item {
        BDI_RECLAIMABLE,
        BDI_WRITEBACK,
+       BDI_WRITTEN,
        NR_BDI_STAT_ITEMS
 };
 
@@ -57,6 +58,7 @@ struct bdi_writeback {
        struct list_head b_dirty;       /* dirty inodes */
        struct list_head b_io;          /* parked for writeback */
        struct list_head b_more_io;     /* parked for more writeback */
+       spinlock_t list_lock;           /* protects the b_* lists */
 };
 
 struct backing_dev_info {
@@ -71,6 +73,11 @@ struct backing_dev_info {
 
        struct percpu_counter bdi_stat[NR_BDI_STAT_ITEMS];
 
+       unsigned long bw_time_stamp;    /* last time write bw is updated */
+       unsigned long written_stamp;    /* pages written at bw_time_stamp */
+       unsigned long write_bandwidth;  /* the estimated write bandwidth */
+       unsigned long avg_write_bandwidth; /* further smoothed write bw */
+
        struct prop_local_percpu completions;
        int dirty_exceeded;
 
@@ -106,6 +113,7 @@ int bdi_writeback_thread(void *data);
 int bdi_has_dirty_io(struct backing_dev_info *bdi);
 void bdi_arm_supers_timer(void);
 void bdi_wakeup_thread_delayed(struct backing_dev_info *bdi);
+void bdi_lock_two(struct bdi_writeback *wb1, struct bdi_writeback *wb2);
 
 extern spinlock_t bdi_lock;
 extern struct list_head bdi_list;