Wrapfs: update wrapfs_fsync
authorErez Zadok <ezk@cs.sunysb.edu>
Sat, 26 Jul 2014 23:06:53 +0000 (19:06 -0400)
committerRohit Kumar <rokkumar@cs.stonybrook.edu>
Sun, 30 Sep 2018 09:28:52 +0000 (05:28 -0400)
In v3.16 generic_file_fsync will access ->i_sb->s_bdev->bd_disk, but
s_bdev is NULL for wrapfs inode.  This will trigger a kernel panic in
xfstests generic/075, generic/091, etc. as of  kernel v3.16-rc1.

This patch fixes this issue by using __generic_file_fsync, a new
interface introduced in v3.16.

Signed-off-by: Mengyang Li <li.mengyang@stonybrook.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/wrapfs/file.c

index 4c89f6087dfbe716d9c226db0473477a5c83f4a9..4c5da2ae46553eccb07413f5cdb1bf30d3fba36b 100644 (file)
@@ -242,7 +242,7 @@ static int wrapfs_fsync(struct file *file, loff_t start, loff_t end,
        struct path lower_path;
        struct dentry *dentry = file->f_path.dentry;
 
-       err = generic_file_fsync(file, start, end, datasync);
+       err = __generic_file_fsync(file, start, end, datasync);
        if (err)
                goto out;
        lower_file = wrapfs_lower_file(file);