Introduce writeback_control.more_io to indicate that more I/O is scheduled for this wakeup of pdflush. Note that more_io is only updated on the _visited_ superblocks, which prevents pdflush deamons from interfering with one another. Cc: Michael Rubin Cc: Peter Zijlstra Signed-off-by: Fengguang Wu --- fs/fs-writeback.c | 6 +++++- include/linux/writeback.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) --- linux-mm.orig/fs/fs-writeback.c +++ linux-mm/fs/fs-writeback.c @@ -472,8 +472,12 @@ int generic_sync_sb_inodes(struct super_ iput(inode); cond_resched(); spin_lock(&inode_lock); - if (wbc->nr_to_write <= 0) + if (wbc->nr_to_write <= 0) { + wbc->more_io = 1; break; + } + if (!list_empty(&sb->s_more_io)) + wbc->more_io = 1; } spin_unlock(&inode_lock); return ret; /* Leave any unwritten inodes on s_io */ --- linux-mm.orig/include/linux/writeback.h +++ linux-mm/include/linux/writeback.h @@ -62,6 +62,7 @@ struct writeback_control { unsigned for_reclaim:1; /* Invoked from the page allocator */ unsigned for_writepages:1; /* This is a writepages() call */ unsigned range_cyclic:1; /* range_start is cyclic */ + unsigned more_io:1; /* more io to be dispatched */ }; /* -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/