Unionfs: update unionfs_fsync
authorErez Zadok <ezk@cs.sunysb.edu>
Sat, 2 Aug 2014 03:06:47 +0000 (23:06 -0400)
committerErez Zadok <ezk@cs.sunysb.edu>
Tue, 11 Nov 2014 02:53:45 +0000 (21:53 -0500)
In v3.16 generic_file_fsync will access ->i_sb->s_bdev->bd_disk, but
s_bdev is NULL for unionfs 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/unionfs/file.c

index 0ed44428e4d437bfcf05052cafe599ead6423401..49ef53e07cd132451a8c9f9ee796b28f3d3a1b99 100644 (file)
@@ -208,7 +208,7 @@ int unionfs_fsync(struct file *file, loff_t start, loff_t end, int datasync)
                goto out;
        unionfs_check_file(file);
 
-       err = generic_file_fsync(file, start, end, datasync);
+       err = __generic_file_fsync(file, start, end, datasync);
        if (err)
                goto out;