Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

+3 -9
-2
fs/fs-writeback.c
··· 482 482 if (wbc->nr_to_write <= 0) 483 483 break; 484 484 } 485 - if (!list_empty(&sb->s_more_io)) 486 - wbc->more_io = 1; 487 485 return; /* Leave any unwritten inodes on s_io */ 488 486 } 489 487
-1
include/linux/writeback.h
··· 62 62 unsigned for_reclaim:1; /* Invoked from the page allocator */ 63 63 unsigned for_writepages:1; /* This is a writepages() call */ 64 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 /*
+3 -6
mm/page-writeback.c
··· 558 558 global_page_state(NR_UNSTABLE_NFS) < background_thresh 559 559 && min_pages <= 0) 560 560 break; 561 - wbc.more_io = 0; 562 561 wbc.encountered_congestion = 0; 563 562 wbc.nr_to_write = MAX_WRITEBACK_PAGES; 564 563 wbc.pages_skipped = 0; ··· 565 566 min_pages -= MAX_WRITEBACK_PAGES - wbc.nr_to_write; 566 567 if (wbc.nr_to_write > 0 || wbc.pages_skipped > 0) { 567 568 /* Wrote less than expected */ 568 - if (wbc.encountered_congestion || wbc.more_io) 569 - congestion_wait(WRITE, HZ/10); 570 - else 569 + congestion_wait(WRITE, HZ/10); 570 + if (!wbc.encountered_congestion) 571 571 break; 572 572 } 573 573 } ··· 631 633 global_page_state(NR_UNSTABLE_NFS) + 632 634 (inodes_stat.nr_inodes - inodes_stat.nr_unused); 633 635 while (nr_to_write > 0) { 634 - wbc.more_io = 0; 635 636 wbc.encountered_congestion = 0; 636 637 wbc.nr_to_write = MAX_WRITEBACK_PAGES; 637 638 writeback_inodes(&wbc); 638 639 if (wbc.nr_to_write > 0) { 639 - if (wbc.encountered_congestion || wbc.more_io) 640 + if (wbc.encountered_congestion) 640 641 congestion_wait(WRITE, HZ/10); 641 642 else 642 643 break; /* All the old data is written */