Hi, This tries to keep dirtied_when for blocked inodes by converting some redirty_tail() calls to requeue_io_wait(). The possibly blocked inodes will be moved to b_more_io_wait. The b_more_io_wait inodes will now be retried as dillegent as b_more_io inodes, except when the latter goes empty, b_more_io_wait will be retried by the kupdate work on increasing intervals until exceeding dirty_writeback_interval. Christoph Hellwig (1): writeback: avoid redirtying when ->write_inode failed to clear I_DIRTY Jan Kara (2): writeback: update wb->last_active on written pages/inodes writeback: Retry kupdate work early if we need to retry some inode writeback Wu Fengguang (4): writeback: introduce queue b_more_io_wait writeback: requeue_io_wait() on pages_skipped inode writeback: requeue_io_wait() on blocked inode writeback: requeue_io_wait() when failed to grab superblock fs/fs-writeback.c | 62 ++++++++++++++++++++++++++++++++++--------- include/linux/backing-dev.h | 8 +++-- mm/backing-dev.c | 10 +++++- 3 files changed, 62 insertions(+), 18 deletions(-) Thanks, Fengguang -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html