diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-12 16:50:21 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-12 16:50:21 -0500 |
commit | 6bec0035286119eefc32a5b1102127e6a4032cb2 (patch) | |
tree | 440fab001b4c877b0b0c9fd62d8392e956e387e3 /fs/fs-writeback.c | |
parent | 5d8e7fb6916556e9b476de33404e8c9e2c9aee61 (diff) | |
parent | 15d0f5ea348b9c4e6d41df294dde38a56a39c7bf (diff) |
Merge branch 'for-3.20/bdi' of git://git.kernel.dk/linux-block
Pull backing device changes from Jens Axboe:
"This contains a cleanup of how the backing device is handled, in
preparation for a rework of the life time rules. In this part, the
most important change is to split the unrelated nommu mmap flags from
it, but also removing a backing_dev_info pointer from the
address_space (and inode), and a cleanup of other various minor bits.
Christoph did all the work here, I just fixed an oops with pages that
have a swap backing. Arnd fixed a missing export, and Oleg killed the
lustre backing_dev_info from staging. Last patch was from Al,
unexporting parts that are now no longer needed outside"
* 'for-3.20/bdi' of git://git.kernel.dk/linux-block:
Make super_blocks and sb_lock static
mtd: export new mtd_mmap_capabilities
fs: make inode_to_bdi() handle NULL inode
staging/lustre/llite: get rid of backing_dev_info
fs: remove default_backing_dev_info
fs: don't reassign dirty inodes to default_backing_dev_info
nfs: don't call bdi_unregister
ceph: remove call to bdi_unregister
fs: remove mapping->backing_dev_info
fs: export inode_to_bdi and use it in favor of mapping->backing_dev_info
nilfs2: set up s_bdi like the generic mount_bdev code
block_dev: get bdev inode bdi directly from the block device
block_dev: only write bdev inode on close
fs: introduce f_op->mmap_capabilities for nommu mmap support
fs: kill BDI_CAP_SWAP_BACKED
fs: deduplicate noop_backing_dev_info
Diffstat (limited to 'fs/fs-writeback.c')
-rw-r--r-- | fs/fs-writeback.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 2d609a5fbfea..c399152de397 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -66,15 +66,21 @@ int writeback_in_progress(struct backing_dev_info *bdi) | |||
66 | } | 66 | } |
67 | EXPORT_SYMBOL(writeback_in_progress); | 67 | EXPORT_SYMBOL(writeback_in_progress); |
68 | 68 | ||
69 | static inline struct backing_dev_info *inode_to_bdi(struct inode *inode) | 69 | struct backing_dev_info *inode_to_bdi(struct inode *inode) |
70 | { | 70 | { |
71 | struct super_block *sb = inode->i_sb; | 71 | struct super_block *sb; |
72 | 72 | ||
73 | if (sb_is_blkdev_sb(sb)) | 73 | if (!inode) |
74 | return inode->i_mapping->backing_dev_info; | 74 | return &noop_backing_dev_info; |
75 | 75 | ||
76 | sb = inode->i_sb; | ||
77 | #ifdef CONFIG_BLOCK | ||
78 | if (sb_is_blkdev_sb(sb)) | ||
79 | return blk_get_backing_dev_info(I_BDEV(inode)); | ||
80 | #endif | ||
76 | return sb->s_bdi; | 81 | return sb->s_bdi; |
77 | } | 82 | } |
83 | EXPORT_SYMBOL_GPL(inode_to_bdi); | ||
78 | 84 | ||
79 | static inline struct inode *wb_inode(struct list_head *head) | 85 | static inline struct inode *wb_inode(struct list_head *head) |
80 | { | 86 | { |