|
@@ -242,12 +242,12 @@ void drop_inmem_pages(struct inode *inode)
|
|
|
{
|
|
|
struct f2fs_inode_info *fi = F2FS_I(inode);
|
|
|
|
|
|
- clear_inode_flag(inode, FI_ATOMIC_FILE);
|
|
|
- stat_dec_atomic_write(inode);
|
|
|
-
|
|
|
mutex_lock(&fi->inmem_lock);
|
|
|
__revoke_inmem_pages(inode, &fi->inmem_pages, true, false);
|
|
|
mutex_unlock(&fi->inmem_lock);
|
|
|
+
|
|
|
+ clear_inode_flag(inode, FI_ATOMIC_FILE);
|
|
|
+ stat_dec_atomic_write(inode);
|
|
|
}
|
|
|
|
|
|
static int __commit_inmem_pages(struct inode *inode,
|
|
@@ -316,6 +316,8 @@ int commit_inmem_pages(struct inode *inode)
|
|
|
f2fs_balance_fs(sbi, true);
|
|
|
f2fs_lock_op(sbi);
|
|
|
|
|
|
+ set_inode_flag(inode, FI_ATOMIC_COMMIT);
|
|
|
+
|
|
|
mutex_lock(&fi->inmem_lock);
|
|
|
err = __commit_inmem_pages(inode, &revoke_list);
|
|
|
if (err) {
|
|
@@ -337,6 +339,8 @@ int commit_inmem_pages(struct inode *inode)
|
|
|
}
|
|
|
mutex_unlock(&fi->inmem_lock);
|
|
|
|
|
|
+ clear_inode_flag(inode, FI_ATOMIC_COMMIT);
|
|
|
+
|
|
|
f2fs_unlock_op(sbi);
|
|
|
return err;
|
|
|
}
|