Revert "writeback: do not sync data dirtied after sync start"
authorJan Kara <jack@suse.cz>
Fri, 21 Feb 2014 10:19:04 +0000 (11:19 +0100)
committerJan Kara <jack@suse.cz>
Sat, 22 Feb 2014 01:02:28 +0000 (02:02 +0100)
commit0dc83bd30b0bf5410c0933cfbbf8853248eff0a9
tree66b8f3ebdd4a6c0de6f82e449c7e037170e26b81
parent1362f4ea20fa63688ba6026e586d9746ff13a846
Revert "writeback: do not sync data dirtied after sync start"

This reverts commit c4a391b53a72d2df4ee97f96f78c1d5971b47489. Dave
Chinner <david@fromorbit.com> has reported the commit may cause some
inodes to be left out from sync(2). This is because we can call
redirty_tail() for some inode (which sets i_dirtied_when to current time)
after sync(2) has started or similarly requeue_inode() can set
i_dirtied_when to current time if writeback had to skip some pages. The
real problem is in the functions clobbering i_dirtied_when but fixing
that isn't trivial so revert is a safer choice for now.

CC: stable@vger.kernel.org # >= 3.13
Signed-off-by: Jan Kara <jack@suse.cz>
fs/fs-writeback.c
fs/sync.c
fs/xfs/xfs_super.c
include/linux/writeback.h
include/trace/events/writeback.h