Whamcloud - gitweb
LU-4388 io: pass fsync() range through RPC/IO stack
[fs/lustre-release.git] / lustre / llite / file.c
index 99d866a..418464e 100644 (file)
@@ -2746,7 +2746,7 @@ static int ll_flush(struct file *file, fl_owner_t id)
 
 /**
  * Called to make sure a portion of file has been written out.
- * if @local_only is not true, it will send OST_SYNC RPCs to ost.
+ * if @mode is not CL_FSYNC_LOCAL, it will send OST_SYNC RPCs to OST.
  *
  * Return how many pages have been written.
  */
@@ -2812,9 +2812,13 @@ int ll_fsync(struct file *file, loff_t start, loff_t end, int datasync)
 int ll_fsync(struct file *file, int datasync)
 {
        struct dentry *dentry = file->f_dentry;
+       loff_t start = 0;
+       loff_t end = LLONG_MAX;
 #else
 int ll_fsync(struct file *file, struct dentry *dentry, int datasync)
 {
+       loff_t start = 0;
+       loff_t end = LLONG_MAX;
 #endif
        struct inode *inode = dentry->d_inode;
        struct ll_inode_info *lli = ll_i2info(inode);
@@ -2860,8 +2864,7 @@ int ll_fsync(struct file *file, struct dentry *dentry, int datasync)
        if (S_ISREG(inode->i_mode)) {
                struct ll_file_data *fd = LUSTRE_FPRIVATE(file);
 
-               err = cl_sync_file_range(inode, 0, OBD_OBJECT_EOF,
-                               CL_FSYNC_ALL, 0);
+               err = cl_sync_file_range(inode, start, end, CL_FSYNC_ALL, 0);
                if (rc == 0 && err < 0)
                        rc = err;
                if (rc < 0)