diff options
Diffstat (limited to 'include/linux/backing-dev.h')
| -rw-r--r-- | include/linux/backing-dev.h | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 3b2f9cb8298..b1038bd686a 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -40,6 +40,7 @@ typedef int (congested_fn)(void *, int);  enum bdi_stat_item {  	BDI_RECLAIMABLE,  	BDI_WRITEBACK, +	BDI_DIRTIED,  	BDI_WRITTEN,  	NR_BDI_STAT_ITEMS  }; @@ -74,10 +75,20 @@ 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 dirtied_stamp;  	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 */ +	/* +	 * The base dirty throttle rate, re-calculated on every 200ms. +	 * All the bdi tasks' dirty rate will be curbed under it. +	 * @dirty_ratelimit tracks the estimated @balanced_dirty_ratelimit +	 * in small steps and is much more smooth/stable than the latter. +	 */ +	unsigned long dirty_ratelimit; +	unsigned long balanced_dirty_ratelimit; +  	struct prop_local_percpu completions;  	int dirty_exceeded; @@ -107,7 +118,8 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent,  int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev);  void bdi_unregister(struct backing_dev_info *bdi);  int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int); -void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages); +void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages, +			enum wb_reason reason);  void bdi_start_background_writeback(struct backing_dev_info *bdi);  int bdi_writeback_thread(void *data);  int bdi_has_dirty_io(struct backing_dev_info *bdi);  |