aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2015-01-14 04:42:36 -0500
committerJens Axboe <axboe@fb.com>2015-01-20 16:03:04 -0500
commitde1414a654e66b81b5348dbc5259ecf2fb61655e (patch)
tree2b3d60d6c0dc87ba33caff3e326d5648831d6176 /include
parent26ff13047e3dc6c0230a629867e8dbd4a15a7626 (diff)
fs: export inode_to_bdi and use it in favor of mapping->backing_dev_info
Now that we got rid of the bdi abuse on character devices we can always use sb->s_bdi to get at the backing_dev_info for a file, except for the block device special case. Export inode_to_bdi and replace uses of mapping->backing_dev_info with it to prepare for the removal of mapping->backing_dev_info. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Tejun Heo <tj@kernel.org> Reviewed-by: Jan Kara <jack@suse.cz> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/backing-dev.h6
-rw-r--r--include/trace/events/writeback.h6
2 files changed, 7 insertions, 5 deletions
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
index 478f95d92d73..ed59dee03a71 100644
--- a/include/linux/backing-dev.h
+++ b/include/linux/backing-dev.h
@@ -106,6 +106,8 @@ struct backing_dev_info {
106#endif 106#endif
107}; 107};
108 108
109struct backing_dev_info *inode_to_bdi(struct inode *inode);
110
109int __must_check bdi_init(struct backing_dev_info *bdi); 111int __must_check bdi_init(struct backing_dev_info *bdi);
110void bdi_destroy(struct backing_dev_info *bdi); 112void bdi_destroy(struct backing_dev_info *bdi);
111 113
@@ -303,12 +305,12 @@ static inline bool bdi_cap_account_writeback(struct backing_dev_info *bdi)
303 305
304static inline bool mapping_cap_writeback_dirty(struct address_space *mapping) 306static inline bool mapping_cap_writeback_dirty(struct address_space *mapping)
305{ 307{
306 return bdi_cap_writeback_dirty(mapping->backing_dev_info); 308 return bdi_cap_writeback_dirty(inode_to_bdi(mapping->host));
307} 309}
308 310
309static inline bool mapping_cap_account_dirty(struct address_space *mapping) 311static inline bool mapping_cap_account_dirty(struct address_space *mapping)
310{ 312{
311 return bdi_cap_account_dirty(mapping->backing_dev_info); 313 return bdi_cap_account_dirty(inode_to_bdi(mapping->host));
312} 314}
313 315
314static inline int bdi_sched_wait(void *word) 316static inline int bdi_sched_wait(void *word)
diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h
index cee02d65ab3f..74f5207bd090 100644
--- a/include/trace/events/writeback.h
+++ b/include/trace/events/writeback.h
@@ -47,7 +47,7 @@ TRACE_EVENT(writeback_dirty_page,
47 47
48 TP_fast_assign( 48 TP_fast_assign(
49 strncpy(__entry->name, 49 strncpy(__entry->name,
50 mapping ? dev_name(mapping->backing_dev_info->dev) : "(unknown)", 32); 50 mapping ? dev_name(inode_to_bdi(mapping->host)->dev) : "(unknown)", 32);
51 __entry->ino = mapping ? mapping->host->i_ino : 0; 51 __entry->ino = mapping ? mapping->host->i_ino : 0;
52 __entry->index = page->index; 52 __entry->index = page->index;
53 ), 53 ),
@@ -72,7 +72,7 @@ DECLARE_EVENT_CLASS(writeback_dirty_inode_template,
72 ), 72 ),
73 73
74 TP_fast_assign( 74 TP_fast_assign(
75 struct backing_dev_info *bdi = inode->i_mapping->backing_dev_info; 75 struct backing_dev_info *bdi = inode_to_bdi(inode);
76 76
77 /* may be called for files on pseudo FSes w/ unregistered bdi */ 77 /* may be called for files on pseudo FSes w/ unregistered bdi */
78 strncpy(__entry->name, 78 strncpy(__entry->name,
@@ -116,7 +116,7 @@ DECLARE_EVENT_CLASS(writeback_write_inode_template,
116 116
117 TP_fast_assign( 117 TP_fast_assign(
118 strncpy(__entry->name, 118 strncpy(__entry->name,
119 dev_name(inode->i_mapping->backing_dev_info->dev), 32); 119 dev_name(inode_to_bdi(inode)->dev), 32);
120 __entry->ino = inode->i_ino; 120 __entry->ino = inode->i_ino;
121 __entry->sync_mode = wbc->sync_mode; 121 __entry->sync_mode = wbc->sync_mode;
122 ), 122 ),