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 */ |
