diff options
Diffstat (limited to 'fs/f2fs/file.c')
-rw-r--r-- | fs/f2fs/file.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index c2deb27ffb72..8ef3184b0037 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c | |||
@@ -161,10 +161,15 @@ int f2fs_sync_file(struct file *file, loff_t start, loff_t end, int datasync) | |||
161 | need_cp = true; | 161 | need_cp = true; |
162 | else if (!is_checkpointed_node(sbi, F2FS_I(inode)->i_pino)) | 162 | else if (!is_checkpointed_node(sbi, F2FS_I(inode)->i_pino)) |
163 | need_cp = true; | 163 | need_cp = true; |
164 | else if (F2FS_I(inode)->xattr_ver == | ||
165 | le64_to_cpu(F2FS_CKPT(sbi)->checkpoint_ver)) | ||
166 | need_cp = true; | ||
164 | 167 | ||
165 | if (need_cp) { | 168 | if (need_cp) { |
166 | nid_t pino; | 169 | nid_t pino; |
167 | 170 | ||
171 | F2FS_I(inode)->xattr_ver = 0; | ||
172 | |||
168 | /* all the dirty node pages should be flushed for POR */ | 173 | /* all the dirty node pages should be flushed for POR */ |
169 | ret = f2fs_sync_fs(inode->i_sb, 1); | 174 | ret = f2fs_sync_fs(inode->i_sb, 1); |
170 | if (file_wrong_pino(inode) && inode->i_nlink == 1 && | 175 | if (file_wrong_pino(inode) && inode->i_nlink == 1 && |