Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de1414a6 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

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: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarTejun Heo <tj@kernel.org>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 26ff1304
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1746,7 +1746,7 @@ static ssize_t btrfs_file_write_iter(struct kiocb *iocb,

	mutex_lock(&inode->i_mutex);

	current->backing_dev_info = inode->i_mapping->backing_dev_info;
	current->backing_dev_info = inode_to_bdi(inode);
	err = generic_write_checks(file, &pos, &count, S_ISBLK(inode->i_mode));
	if (err) {
		mutex_unlock(&inode->i_mutex);
+1 −1
Original line number Diff line number Diff line
@@ -945,7 +945,7 @@ static ssize_t ceph_write_iter(struct kiocb *iocb, struct iov_iter *from)
	mutex_lock(&inode->i_mutex);

	/* We can write back this queue in page reclaim */
	current->backing_dev_info = file->f_mapping->backing_dev_info;
	current->backing_dev_info = inode_to_bdi(inode);

	err = generic_write_checks(file, &pos, &count, S_ISBLK(inode->i_mode));
	if (err)
+1 −1
Original line number Diff line number Diff line
@@ -170,7 +170,7 @@ static void ext2_preread_inode(struct inode *inode)
	struct ext2_group_desc * gdp;
	struct backing_dev_info *bdi;

	bdi = inode->i_mapping->backing_dev_info;
	bdi = inode_to_bdi(inode);
	if (bdi_read_congested(bdi))
		return;
	if (bdi_write_congested(bdi))
+1 −1
Original line number Diff line number Diff line
@@ -334,7 +334,7 @@ static void save_error_info(struct super_block *sb, const char *func,
static int block_device_ejected(struct super_block *sb)
{
	struct inode *bd_inode = sb->s_bdev->bd_inode;
	struct backing_dev_info *bdi = bd_inode->i_mapping->backing_dev_info;
	struct backing_dev_info *bdi = inode_to_bdi(bd_inode);

	return bdi->dev == NULL;
}
+2 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ int writeback_in_progress(struct backing_dev_info *bdi)
}
EXPORT_SYMBOL(writeback_in_progress);

static inline struct backing_dev_info *inode_to_bdi(struct inode *inode)
struct backing_dev_info *inode_to_bdi(struct inode *inode)
{
	struct super_block *sb = inode->i_sb;
#ifdef CONFIG_BLOCK
@@ -75,6 +75,7 @@ static inline struct backing_dev_info *inode_to_bdi(struct inode *inode)
#endif
	return sb->s_bdi;
}
EXPORT_SYMBOL_GPL(inode_to_bdi);

static inline struct inode *wb_inode(struct list_head *head)
{
Loading