diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/page-writeback.c | 9 |
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 */ |