diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2009-09-02 03:19:46 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-09-11 03:20:25 -0400 |
commit | 66f3b8e2e103a0b93b945764d98e9ba46cb926dd (patch) | |
tree | 442bf5664214f0a1448e4010b09868cc58fdd3d1 /include/linux/backing-dev.h | |
parent | d8a8559cd7a9ccac98d5f6f13297a2ff68a43627 (diff) |
writeback: move dirty inodes from super_block to backing_dev_info
This is a first step at introducing per-bdi flusher threads. We should
have no change in behaviour, although sb_has_dirty_inodes() is now
ridiculously expensive, as there's no easy way to answer that question.
Not a huge problem, since it'll be deleted in subsequent patches.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include/linux/backing-dev.h')
-rw-r--r-- | include/linux/backing-dev.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 1d52425a6118..928cd5484f4d 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h | |||
@@ -40,6 +40,8 @@ enum bdi_stat_item { | |||
40 | #define BDI_STAT_BATCH (8*(1+ilog2(nr_cpu_ids))) | 40 | #define BDI_STAT_BATCH (8*(1+ilog2(nr_cpu_ids))) |
41 | 41 | ||
42 | struct backing_dev_info { | 42 | struct backing_dev_info { |
43 | struct list_head bdi_list; | ||
44 | |||
43 | unsigned long ra_pages; /* max readahead in PAGE_CACHE_SIZE units */ | 45 | unsigned long ra_pages; /* max readahead in PAGE_CACHE_SIZE units */ |
44 | unsigned long state; /* Always use atomic bitops on this */ | 46 | unsigned long state; /* Always use atomic bitops on this */ |
45 | unsigned int capabilities; /* Device capabilities */ | 47 | unsigned int capabilities; /* Device capabilities */ |
@@ -58,6 +60,10 @@ struct backing_dev_info { | |||
58 | 60 | ||
59 | struct device *dev; | 61 | struct device *dev; |
60 | 62 | ||
63 | struct list_head b_dirty; /* dirty inodes */ | ||
64 | struct list_head b_io; /* parked for writeback */ | ||
65 | struct list_head b_more_io; /* parked for more writeback */ | ||
66 | |||
61 | #ifdef CONFIG_DEBUG_FS | 67 | #ifdef CONFIG_DEBUG_FS |
62 | struct dentry *debug_dir; | 68 | struct dentry *debug_dir; |
63 | struct dentry *debug_stats; | 69 | struct dentry *debug_stats; |
@@ -72,6 +78,9 @@ int bdi_register(struct backing_dev_info *bdi, struct device *parent, | |||
72 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); | 78 | int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); |
73 | void bdi_unregister(struct backing_dev_info *bdi); | 79 | void bdi_unregister(struct backing_dev_info *bdi); |
74 | 80 | ||
81 | extern struct mutex bdi_lock; | ||
82 | extern struct list_head bdi_list; | ||
83 | |||
75 | static inline void __add_bdi_stat(struct backing_dev_info *bdi, | 84 | static inline void __add_bdi_stat(struct backing_dev_info *bdi, |
76 | enum bdi_stat_item item, s64 amount) | 85 | enum bdi_stat_item item, s64 amount) |
77 | { | 86 | { |