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

Commit c23f72ca authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Revert "writeback: introduce writeback_control.more_io to indicate more io"

This reverts commit 2e6883bd, as
requested by Fengguang Wu.  It's not quite fully baked yet, and while
there are patches around to fix the problems it caused, they should get
more testing.  Says Fengguang: "I'll resend them both for -mm later on,
in a more complete patchset".

See

	http://bugzilla.kernel.org/show_bug.cgi?id=9738



for some of this discussion.

Requested-by: default avatarFengguang Wu <wfg@mail.ustc.edu.cn>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 031f2dcd
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -482,8 +482,6 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc)
		if (wbc->nr_to_write <= 0)
			break;
	}
	if (!list_empty(&sb->s_more_io))
		wbc->more_io = 1;
	return;		/* Leave any unwritten inodes on s_io */
}

+0 −1
Original line number Diff line number Diff line
@@ -62,7 +62,6 @@ struct writeback_control {
	unsigned for_reclaim:1;		/* Invoked from the page allocator */
	unsigned for_writepages:1;	/* This is a writepages() call */
	unsigned range_cyclic:1;	/* range_start is cyclic */
	unsigned more_io:1;		/* more io to be dispatched */
};

/*
+3 −6
Original line number Diff line number Diff line
@@ -558,7 +558,6 @@ static void background_writeout(unsigned long _min_pages)
			global_page_state(NR_UNSTABLE_NFS) < background_thresh
				&& min_pages <= 0)
			break;
		wbc.more_io = 0;
		wbc.encountered_congestion = 0;
		wbc.nr_to_write = MAX_WRITEBACK_PAGES;
		wbc.pages_skipped = 0;
@@ -566,9 +565,8 @@ static void background_writeout(unsigned long _min_pages)
		min_pages -= MAX_WRITEBACK_PAGES - wbc.nr_to_write;
		if (wbc.nr_to_write > 0 || wbc.pages_skipped > 0) {
			/* Wrote less than expected */
			if (wbc.encountered_congestion || wbc.more_io)
			congestion_wait(WRITE, HZ/10);
			else
			if (!wbc.encountered_congestion)
				break;
		}
	}
@@ -633,12 +631,11 @@ static void wb_kupdate(unsigned long arg)
			global_page_state(NR_UNSTABLE_NFS) +
			(inodes_stat.nr_inodes - inodes_stat.nr_unused);
	while (nr_to_write > 0) {
		wbc.more_io = 0;
		wbc.encountered_congestion = 0;
		wbc.nr_to_write = MAX_WRITEBACK_PAGES;
		writeback_inodes(&wbc);
		if (wbc.nr_to_write > 0) {
			if (wbc.encountered_congestion || wbc.more_io)
			if (wbc.encountered_congestion)
				congestion_wait(WRITE, HZ/10);
			else
				break;	/* All the old data is written */