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

Commit bc05873d authored by Tejun Heo's avatar Tejun Heo Committed by Jens Axboe
Browse files

writeback: make writeback_in_progress() take bdi_writeback instead of backing_dev_info



writeback_in_progress() currently takes @bdi and returns whether
writeback is in progress on its root wb (bdi_writeback).  In
preparation for cgroup writeback support, make it take wb instead.
While at it, make it an inline function.

This patch doesn't make any functional difference.

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Jan Kara <jack@suse.cz>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent a06fd6b1
Loading
Loading
Loading
Loading
+1 −14
Original line number Diff line number Diff line
@@ -65,19 +65,6 @@ struct wb_writeback_work {
 */
unsigned int dirtytime_expire_interval = 12 * 60 * 60;

/**
 * writeback_in_progress - determine whether there is writeback in progress
 * @bdi: the device's backing_dev_info structure.
 *
 * Determine whether there is writeback waiting to be handled against a
 * backing device.
 */
int writeback_in_progress(struct backing_dev_info *bdi)
{
	return test_bit(WB_writeback_running, &bdi->wb.state);
}
EXPORT_SYMBOL(writeback_in_progress);

static inline struct inode *wb_inode(struct list_head *head)
{
	return list_entry(head, struct inode, i_wb_list);
@@ -1532,7 +1519,7 @@ int try_to_writeback_inodes_sb_nr(struct super_block *sb,
				  unsigned long nr,
				  enum wb_reason reason)
{
	if (writeback_in_progress(sb->s_bdi))
	if (writeback_in_progress(&sb->s_bdi->wb))
		return 1;

	if (!down_read_trylock(&sb->s_umount))
+11 −1
Original line number Diff line number Diff line
@@ -156,7 +156,17 @@ int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio);

extern struct backing_dev_info noop_backing_dev_info;

int writeback_in_progress(struct backing_dev_info *bdi);
/**
 * writeback_in_progress - determine whether there is writeback in progress
 * @wb: bdi_writeback of interest
 *
 * Determine whether there is writeback waiting to be handled against a
 * bdi_writeback.
 */
static inline bool writeback_in_progress(struct bdi_writeback *wb)
{
	return test_bit(WB_writeback_running, &wb->state);
}

static inline struct backing_dev_info *inode_to_bdi(struct inode *inode)
{
+2 −2
Original line number Diff line number Diff line
@@ -1455,7 +1455,7 @@ static void balance_dirty_pages(struct address_space *mapping,
			break;
		}

		if (unlikely(!writeback_in_progress(bdi)))
		if (unlikely(!writeback_in_progress(wb)))
			bdi_start_background_writeback(bdi);

		if (!strictlimit)
@@ -1573,7 +1573,7 @@ pause:
	if (!dirty_exceeded && wb->dirty_exceeded)
		wb->dirty_exceeded = 0;

	if (writeback_in_progress(bdi))
	if (writeback_in_progress(wb))
		return;

	/*