diff options
-rw-r--r-- | fs/fs-writeback.c | 2 | ||||
-rw-r--r-- | include/linux/writeback.h | 1 | ||||
-rw-r--r-- | mm/page-writeback.c | 9 |
3 files changed, 3 insertions, 9 deletions
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 0fca82021d76..300324bd563c 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -482,8 +482,6 @@ sync_sb_inodes(struct super_block *sb, struct writeback_control *wbc) | |||
482 | if (wbc->nr_to_write <= 0) | 482 | if (wbc->nr_to_write <= 0) |
483 | break; | 483 | break; |
484 | } | 484 | } |
485 | if (!list_empty(&sb->s_more_io)) | ||
486 | wbc->more_io = 1; | ||
487 | return; /* Leave any unwritten inodes on s_io */ | 485 | return; /* Leave any unwritten inodes on s_io */ |
488 | } | 486 | } |
489 | 487 | ||
diff --git a/include/linux/writeback.h b/include/linux/writeback.h index bef7d66601cb..c6148bbf1250 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h | |||
@@ -62,7 +62,6 @@ struct writeback_control { | |||
62 | unsigned for_reclaim:1; /* Invoked from the page allocator */ | 62 | unsigned for_reclaim:1; /* Invoked from the page allocator */ |
63 | unsigned for_writepages:1; /* This is a writepages() call */ | 63 | unsigned for_writepages:1; /* This is a writepages() call */ |
64 | unsigned range_cyclic:1; /* range_start is cyclic */ | 64 | unsigned range_cyclic:1; /* range_start is cyclic */ |
65 | unsigned more_io:1; /* more io to be dispatched */ | ||
66 | }; | 65 | }; |
67 | 66 | ||
68 | /* | 67 | /* |
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 */ |