summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/file.c
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2016-01-09 17:08:38 -0800
committerJaegeuk Kim <jaegeuk@kernel.org>2016-01-11 15:56:44 -0800
commit447135a86659c646017b8e707c1243c186bf2dff (patch)
tree267c8875be3ca887fb1510fa8f1e9d427046daa5 /fs/f2fs/file.c
parent1663cae48ce3ce991c0e3f1a6fbdbd57f3dce9af (diff)
downloadlinux-447135a86659c646017b8e707c1243c186bf2dff.tar.gz
linux-447135a86659c646017b8e707c1243c186bf2dff.tar.bz2
linux-447135a86659c646017b8e707c1243c186bf2dff.zip
f2fs: should unset atomic flag after successful commit
If there is an error during commit, we should keep the flag in order to abort it. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/file.c')
-rw-r--r--fs/f2fs/file.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 3d43857e9892..18ddb1e5182a 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -1378,8 +1378,10 @@ static int f2fs_ioc_commit_atomic_write(struct file *filp)
if (f2fs_is_atomic_file(inode)) {
clear_inode_flag(F2FS_I(inode), FI_ATOMIC_FILE);
ret = commit_inmem_pages(inode, false);
- if (ret)
+ if (ret) {
+ set_inode_flag(F2FS_I(inode), FI_ATOMIC_FILE);
goto err_out;
+ }
}
ret = f2fs_sync_file(filp, 0, LLONG_MAX, 0);