From patchwork Tue Nov 15 08:04:49 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [RESEND, 2/2] ext3: flush journal only when journal mode is changed from journaled Date: Mon, 14 Nov 2011 22:04:49 -0000 From: Yongqiang Yang X-Patchwork-Id: 125721 Message-Id: <1321344289-13125-1-git-send-email-xiaoqiangnk@gmail.com> To: jack@suse.cz Cc: linux-ext4@vger.kernel.org, Yongqiang Yang To prevent data from corruption during repaly, we need to flush journal before changing journal mode from journaled. However flushing journal is not needed when changing journal to journaled. Signed-off-by: Yongqiang Yang --- fs/ext3/inode.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c index 04da6ac..5577358 100644 --- a/fs/ext3/inode.c +++ b/fs/ext3/inode.c @@ -3546,7 +3546,6 @@ int ext3_change_inode_journal_flag(struct inode *inode, int val) return -EROFS; journal_lock_updates(journal); - journal_flush(journal); /* * OK, there are no updates running now, and all cached data is @@ -3556,10 +3555,12 @@ int ext3_change_inode_journal_flag(struct inode *inode, int val) * the inode's in-core data-journaling state flag now. */ - if (val) + if (val) { EXT3_I(inode)->i_flags |= EXT3_JOURNAL_DATA_FL; - else + } else { + journal_flush(journal); EXT3_I(inode)->i_flags &= ~EXT3_JOURNAL_DATA_FL; + } ext3_set_aops(inode); journal_unlock_updates(journal);