diff options
| author | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-01-09 20:08:38 -0500 |
|---|---|---|
| committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-01-11 18:56:44 -0500 |
| commit | 447135a86659c646017b8e707c1243c186bf2dff (patch) | |
| tree | 267c8875be3ca887fb1510fa8f1e9d427046daa5 /fs/f2fs/file.c | |
| parent | 1663cae48ce3ce991c0e3f1a6fbdbd57f3dce9af (diff) | |
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.c | 4 |
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) | |||
| 1378 | if (f2fs_is_atomic_file(inode)) { | 1378 | if (f2fs_is_atomic_file(inode)) { |
| 1379 | clear_inode_flag(F2FS_I(inode), FI_ATOMIC_FILE); | 1379 | clear_inode_flag(F2FS_I(inode), FI_ATOMIC_FILE); |
| 1380 | ret = commit_inmem_pages(inode, false); | 1380 | ret = commit_inmem_pages(inode, false); |
| 1381 | if (ret) | 1381 | if (ret) { |
| 1382 | set_inode_flag(F2FS_I(inode), FI_ATOMIC_FILE); | ||
| 1382 | goto err_out; | 1383 | goto err_out; |
| 1384 | } | ||
| 1383 | } | 1385 | } |
| 1384 | 1386 | ||
| 1385 | ret = f2fs_sync_file(filp, 0, LLONG_MAX, 0); | 1387 | ret = f2fs_sync_file(filp, 0, LLONG_MAX, 0); |
