diff options
| author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-04-30 03:54:32 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 11:29:49 -0400 |
| commit | cf0ca9fe5dd9e3693d935757a7b2fc50fc576554 (patch) | |
| tree | c795c5271eda9fc67579fa3176c646b892dfdb41 /include/linux | |
| parent | caafa4324335aeb11bc233d5f87aca8cce30beba (diff) | |
mm: bdi: export BDI attributes in sysfs
Provide a place in sysfs (/sys/class/bdi) for the backing_dev_info object.
This allows us to see and set the various BDI specific variables.
In particular this properly exposes the read-ahead window for all relevant
users and /sys/block/<block>/queue/read_ahead_kb should be deprecated.
With patient help from Kay Sievers and Greg KH
[mszeredi@suse.cz]
- split off NFS and FUSE changes into separate patches
- document new sysfs attributes under Documentation/ABI
- do bdi_class_init as a core_initcall, otherwise the "default" BDI
won't be initialized
- remove bdi_init_fmt macro, it's not used very much
[akpm@linux-foundation.org: fix ia64 warning]
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Acked-by: Greg KH <greg@kroah.com>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/backing-dev.h | 9 | ||||
| -rw-r--r-- | include/linux/writeback.h | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index b66fa2bdfd9c..6d513666d45c 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
| @@ -11,9 +11,11 @@ | |||
| 11 | #include <linux/percpu_counter.h> | 11 | #include <linux/percpu_counter.h> |
| 12 | #include <linux/log2.h> | 12 | #include <linux/log2.h> |
| 13 | #include <linux/proportions.h> | 13 | #include <linux/proportions.h> |
| 14 | #include <linux/kernel.h> | ||
| 14 | #include <asm/atomic.h> | 15 | #include <asm/atomic.h> |
| 15 | 16 | ||
| 16 | struct page; | 17 | struct page; |
| 18 | struct device; | ||
| 17 | 19 | ||
| 18 | /* | 20 | /* |
| 19 | * Bits in backing_dev_info.state | 21 | * Bits in backing_dev_info.state |
| @@ -48,11 +50,18 @@ struct backing_dev_info { | |||
| 48 | 50 | ||
| 49 | struct prop_local_percpu completions; | 51 | struct prop_local_percpu completions; |
| 50 | int dirty_exceeded; | 52 | int dirty_exceeded; |
| 53 | |||
| 54 | struct device *dev; | ||
| 51 | }; | 55 | }; |
| 52 | 56 | ||
| 53 | int bdi_init(struct backing_dev_info *bdi); | 57 | int bdi_init(struct backing_dev_info *bdi); |
| 54 | void bdi_destroy(struct backing_dev_info *bdi); | 58 | void bdi_destroy(struct backing_dev_info *bdi); |
| 55 | 59 | ||
| 60 | int bdi_register(struct backing_dev_info *bdi, struct device *parent, | ||
| 61 | const char *fmt, ...); | ||
| 62 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); | ||
| 63 | void bdi_unregister(struct backing_dev_info *bdi); | ||
| 64 | |||
| 56 | static inline void __add_bdi_stat(struct backing_dev_info *bdi, | 65 | static inline void __add_bdi_stat(struct backing_dev_info *bdi, |
| 57 | enum bdi_stat_item item, s64 amount) | 66 | enum bdi_stat_item item, s64 amount) |
| 58 | { | 67 | { |
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index b7b3362f7717..f462439cc288 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
| @@ -114,6 +114,9 @@ struct file; | |||
| 114 | int dirty_writeback_centisecs_handler(struct ctl_table *, int, struct file *, | 114 | int dirty_writeback_centisecs_handler(struct ctl_table *, int, struct file *, |
| 115 | void __user *, size_t *, loff_t *); | 115 | void __user *, size_t *, loff_t *); |
| 116 | 116 | ||
| 117 | void get_dirty_limits(long *pbackground, long *pdirty, long *pbdi_dirty, | ||
| 118 | struct backing_dev_info *bdi); | ||
| 119 | |||
| 117 | void page_writeback_init(void); | 120 | void page_writeback_init(void); |
| 118 | void balance_dirty_pages_ratelimited_nr(struct address_space *mapping, | 121 | void balance_dirty_pages_ratelimited_nr(struct address_space *mapping, |
| 119 | unsigned long nr_pages_dirtied); | 122 | unsigned long nr_pages_dirtied); |
