|
@@ -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);
|