[PATCH 00/18] writeback fixes and cleanups for 2.6.40 (v3)

Wu Fengguang
2011-05-19T21:54:51Z

Andrew,

This is the combination of all the recent writeback patches that get
reasonably reviewed and tested.

The first 10 patches are already in -mm tree, with updates:

- remove "writeback: pass writeback_control down to move_expired_inodes()", and
resolve the resulting merge conflicts in other patches.
- move ahead the sync livelock prevention patches (01, 02) so that (04) won't livelock sync
- merge the three -mm fixes to (08)
- fixed changelog of (01)
- rename .for_sync to .tagged_writepages

[PATCH 01/18] writeback: introduce .tagged_writepages for the WB_SYNC_NONE sync stage
[PATCH 02/18] writeback: update dirtied_when for synced inode to prevent livelock
[PATCH 03/18] writeback: introduce writeback_control.inodes_cleaned
[PATCH 04/18] writeback: try more writeback as long as something was written
[PATCH 05/18] writeback: the kupdate expire timestamp should be a moving target
[PATCH 06/18] writeback: sync expired inodes first in background writeback
[PATCH 07/18] writeback: refill b_io iff empty
[PATCH 08/18] writeback: split inode_wb_list_lock into bdi_writeback.list_lock
[PATCH 09/18] writeback: elevate queue_io() into wb_writeback()
[PATCH 10/18] writeback: avoid extra sync work at enqueue time

The following 8 patches were posted and reviewed these days:

[PATCH 11/18] writeback: add bdi_dirty_limit() kernel-doc
[PATCH 12/18] writeback: skip balance_dirty_pages() for in-memory fs
[PATCH 13/18] writeback: remove writeback_control.more_io
[PATCH 14/18] writeback: make writeback_control.nr_to_write straight
[PATCH 15/18] writeback: remove .nonblocking and .encountered_congestion
[PATCH 16/18] writeback: trace event writeback_single_inode
[PATCH 17/18] writeback: trace event writeback_queue_io
[PATCH 18/18] writeback: rearrange the wb_writeback() loop

Thanks to Jan and Dave for the careful reviews!

The patches are git pullable from

git://git.kernel.org/pub/scm/linux/kernel/git/wfg/writeback.git fs-writeback

fs/block_dev.c | 16 +-
fs/btrfs/extent_io.c | 2 -
fs/ext4/inode.c | 4 +-
fs/fs-writeback.c | 411 +++++++++++++++++++++-----------------
fs/inode.c | 5 +-
fs/nfs/write.c | 3 +-
fs/xfs/linux-2.6/xfs_aops.c | 2 +-
include/linux/backing-dev.h | 2 +
include/linux/writeback.h | 14 +-
include/trace/events/btrfs.h | 6 +-
include/trace/events/ext4.h | 6 +-
include/trace/events/writeback.h | 137 ++++++++++++--
mm/backing-dev.c | 30 ++-
mm/filemap.c | 6 +-
mm/page-writeback.c | 42 ++--
mm/rmap.c | 4 +-
16 files changed, 420 insertions(+), 270 deletions(-)

Thanks,
Fengguang