aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2008-01-15 00:21:29 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-01-15 00:21:29 -0500
commitc23f72cae9523d29ff94eec8f30ccbdaf234b20e (patch)
tree1e5f46971510cd36a3deebfa8f160933212f4df0 /mm
parent031f2dcd7075e218e74dd7f942ad015cf82dffab (diff)
Revert "writeback: introduce writeback_control.more_io to indicate more io"
This reverts commit 2e6883bdf49abd0e7f0d9b6297fc3be7ebb2250b, 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: Fengguang Wu <wfg@mail.ustc.edu.cn> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/page-writeback.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index d55cfcae2ef1..3d3848fa6324 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -558,7 +558,6 @@ static void background_writeout(unsigned long _min_pages)
558 global_page_state(NR_UNSTABLE_NFS) < background_thresh 558 global_page_state(NR_UNSTABLE_NFS) < background_thresh
559 && min_pages <= 0) 559 && min_pages <= 0)
560 break; 560 break;
561 wbc.more_io = 0;
562 wbc.encountered_congestion = 0; 561 wbc.encountered_congestion = 0;
563 wbc.nr_to_write = MAX_WRITEBACK_PAGES; 562 wbc.nr_to_write = MAX_WRITEBACK_PAGES;
564 wbc.pages_skipped = 0; 563 wbc.pages_skipped = 0;
@@ -566,9 +565,8 @@ static void background_writeout(unsigned long _min_pages)
566 min_pages -= MAX_WRITEBACK_PAGES - wbc.nr_to_write; 565 min_pages -= MAX_WRITEBACK_PAGES - wbc.nr_to_write;
567 if (wbc.nr_to_write > 0 || wbc.pages_skipped > 0) { 566 if (wbc.nr_to_write > 0 || wbc.pages_skipped > 0) {
568 /* Wrote less than expected */ 567 /* Wrote less than expected */
569 if (wbc.encountered_congestion || wbc.more_io) 568 congestion_wait(WRITE, HZ/10);
570 congestion_wait(WRITE, HZ/10); 569 if (!wbc.encountered_congestion)
571 else
572 break; 570 break;
573 } 571 }
574 } 572 }
@@ -633,12 +631,11 @@ static void wb_kupdate(unsigned long arg)
633 global_page_state(NR_UNSTABLE_NFS) + 631 global_page_state(NR_UNSTABLE_NFS) +
634 (inodes_stat.nr_inodes - inodes_stat.nr_unused); 632 (inodes_stat.nr_inodes - inodes_stat.nr_unused);
635 while (nr_to_write > 0) { 633 while (nr_to_write > 0) {
636 wbc.more_io = 0;
637 wbc.encountered_congestion = 0; 634 wbc.encountered_congestion = 0;
638 wbc.nr_to_write = MAX_WRITEBACK_PAGES; 635 wbc.nr_to_write = MAX_WRITEBACK_PAGES;
639 writeback_inodes(&wbc); 636 writeback_inodes(&wbc);
640 if (wbc.nr_to_write > 0) { 637 if (wbc.nr_to_write > 0) {
641 if (wbc.encountered_congestion || wbc.more_io) 638 if (wbc.encountered_congestion)
642 congestion_wait(WRITE, HZ/10); 639 congestion_wait(WRITE, HZ/10);
643 else 640 else
644 break; /* All the old data is written */ 641 break; /* All the old data is written */