f2fs: drop FI_UPDATE_WRITE tag after f2fs_issue_flush
authorChao Yu <yuchao0@huawei.com>
Fri, 29 Sep 2017 05:59:36 +0000 (13:59 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 19 Dec 2017 01:21:46 +0000 (17:21 -0800)
If we failed to issue flush in ->fsync, we need to keep FI_UPDATE_WRITE
flag to make sure triggering flush in next ->fsync.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/file.c

index b8372095ba0a6e1b906b1a7ff40b46e3beb2d4c0..0a1f033b50c27e8d4dede11df2909e32ea368a8c 100644 (file)
@@ -294,10 +294,12 @@ sync_nodes:
        remove_ino_entry(sbi, ino, APPEND_INO);
        clear_inode_flag(inode, FI_APPEND_WRITE);
 flush_out:
-       remove_ino_entry(sbi, ino, UPDATE_INO);
-       clear_inode_flag(inode, FI_UPDATE_WRITE);
        if (!atomic)
                ret = f2fs_issue_flush(sbi);
+       if (!ret) {
+               remove_ino_entry(sbi, ino, UPDATE_INO);
+               clear_inode_flag(inode, FI_UPDATE_WRITE);
+       }
        f2fs_update_time(sbi, REQ_TIME);
 out:
        trace_f2fs_sync_file_exit(inode, need_cp, datasync, ret);