Files
Linux/fs
Tejun Heo 006a0973ed writeback: sync_inodes_sb() must write out I_DIRTY_TIME inodes and always call wait_sb_inodes()
e79729123f ("writeback: don't issue wb_writeback_work if clean")
updated writeback path to avoid kicking writeback work items if there
are no inodes to be written out; unfortunately, the avoidance logic
was too aggressive and broke sync_inodes_sb().

* sync_inodes_sb() must write out I_DIRTY_TIME inodes but I_DIRTY_TIME
  inodes dont't contribute to bdi/wb_has_dirty_io() tests and were
  being skipped over.

* inodes are taken off wb->b_dirty/io/more_io lists after writeback
  starts on them.  sync_inodes_sb() skipping wait_sb_inodes() when
  bdi_has_dirty_io() breaks it by making it return while writebacks
  are in-flight.

This patch fixes the breakages by

* Removing bdi_has_dirty_io() shortcut from bdi_split_work_to_wbs().
  The callers are already testing the condition.

* Removing bdi_has_dirty_io() shortcut from sync_inodes_sb() so that
  it always calls into bdi_split_work_to_wbs() and wait_sb_inodes().

* Making bdi_split_work_to_wbs() consider the b_dirty_time list for
  WB_SYNC_ALL writebacks.

Kudos to Eryu, Dave and Jan for tracking down the issue.

Signed-off-by: Tejun Heo <[email protected]>
Fixes: e79729123f ("writeback: don't issue wb_writeback_work if clean")
Link: http://lkml.kernel.org/g/[email protected]
Reported-and-bisected-by: Eryu Guan <[email protected]>
Cc: Dave Chinner <[email protected]>
Cc: Jan Kara <[email protected]>
Cc: Ted Ts'o <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
2015-08-25 14:35:09 -06:00
..
2015-06-30 19:44:57 -07:00
2015-06-23 18:02:01 -04:00
2015-06-23 18:01:59 -04:00
2015-07-09 11:42:21 -07:00
2015-06-25 17:00:42 -07:00
2015-07-09 11:42:21 -07:00
2015-08-16 12:35:44 -07:00
…
2015-04-21 16:16:02 -04:00
2015-07-09 11:42:21 -07:00
…
2015-08-07 04:39:41 +03:00
…
2015-04-11 22:29:40 -04:00
…
2015-06-02 09:22:34 -06:00
2015-07-09 11:42:21 -07:00
…
…
…
…
…
…
2015-05-31 13:23:08 +02:00
…
2015-08-04 23:23:50 -04:00
…
…
…
…
…
…
…