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 | |
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')
-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); |