Wrapfs: ->fsync updates for new prototype
authorErez Zadok <ezk@cs.sunysb.edu>
Tue, 6 Sep 2011 04:10:30 +0000 (00:10 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Tue, 27 Dec 2016 03:53:00 +0000 (22:53 -0500)
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/wrapfs/file.c

index e16b21c556b7a4c2d670f596510f82c5a1ef3942..7a7fe1e98d48d150eefcb0e1035715eb8f9ec314 100644 (file)
@@ -234,18 +234,22 @@ static int wrapfs_file_release(struct inode *inode, struct file *file)
        return 0;
 }
 
-static int wrapfs_fsync(struct file *file, int datasync)
+static int wrapfs_fsync(struct file *file, loff_t start, loff_t end,
+                       int datasync)
 {
        int err;
        struct file *lower_file;
        struct path lower_path;
        struct dentry *dentry = file->f_path.dentry;
 
+       err = generic_file_fsync(file, start, end, datasync);
+       if (err)
+               goto out;
        lower_file = wrapfs_lower_file(file);
        wrapfs_get_lower_path(dentry, &lower_path);
-       err = vfs_fsync(lower_file, datasync);
+       err = vfs_fsync_range(lower_file, start, end, datasync);
        wrapfs_put_lower_path(dentry, &lower_path);
-
+out:
        return err;
 }