jbd2: fix sending of data flush on journal commit
authorJan Kara <jack@suse.cz>
Tue, 24 May 2011 15:52:40 +0000 (11:52 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 24 May 2011 15:52:40 +0000 (11:52 -0400)
In data=ordered mode, it's theoretically possible (however rare) that
an inode is filed to transaction's t_inode_list and a flusher thread
writes all the data and inode is reclaimed before the transaction
starts to commit.  In such a case, we could erroneously omit sending a
flush to file system device when it is different from the journal
device (because data can still be in disk cache only).

Fix the problem by setting a flag in a transaction when some inode is added
to it and then send disk flush in the commit code when the flag is set.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

No differences found