diff --git a/[refs] b/[refs] index 36cadc3fc1eb..c4db5110a526 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2aff57b0c052344e8401a8b4a33c2a1ecb0f627c +refs/heads/master: 5872ddaaf05bf25e3ab90580295ebc946405928c diff --git a/trunk/fs/ext4/inode.c b/trunk/fs/ext4/inode.c index cb0ba9d77a8e..1254934de693 100644 --- a/trunk/fs/ext4/inode.c +++ b/trunk/fs/ext4/inode.c @@ -4660,7 +4660,6 @@ int ext4_change_inode_journal_flag(struct inode *inode, int val) } jbd2_journal_lock_updates(journal); - jbd2_journal_flush(journal); /* * OK, there are no updates running now, and all cached data is @@ -4672,8 +4671,10 @@ int ext4_change_inode_journal_flag(struct inode *inode, int val) if (val) ext4_set_inode_flag(inode, EXT4_INODE_JOURNAL_DATA); - else + else { + jbd2_journal_flush(journal); ext4_clear_inode_flag(inode, EXT4_INODE_JOURNAL_DATA); + } ext4_set_aops(inode); jbd2_journal_unlock_updates(journal);