|
@@ -127,7 +127,14 @@ int f2fs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
trace_f2fs_sync_file_enter(inode);
|
|
trace_f2fs_sync_file_enter(inode);
|
|
|
|
+
|
|
|
|
+ /* if fdatasync is triggered, let's do in-place-update */
|
|
|
|
+ if (datasync)
|
|
|
|
+ set_inode_flag(fi, FI_NEED_IPU);
|
|
|
|
+
|
|
ret = filemap_write_and_wait_range(inode->i_mapping, start, end);
|
|
ret = filemap_write_and_wait_range(inode->i_mapping, start, end);
|
|
|
|
+ if (datasync)
|
|
|
|
+ clear_inode_flag(fi, FI_NEED_IPU);
|
|
if (ret) {
|
|
if (ret) {
|
|
trace_f2fs_sync_file_exit(inode, need_cp, datasync, ret);
|
|
trace_f2fs_sync_file_exit(inode, need_cp, datasync, ret);
|
|
return ret;
|
|
return ret;
|