X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=config%2Fkernel-fsync.m4;h=862b89782e2a235675f2871ea1ad1834f9b3ed4e;hb=4b787d75c869a7f633607ecb17f3a7c482a553d2;hp=2733dba33a54b2b31598c02bdf94718a1b29be13;hpb=7268e1bec8478639b7a1047e02ab931f30bc2f92;p=zfs.git diff --git a/config/kernel-fsync.m4 b/config/kernel-fsync.m4 index 2733dba..862b897 100644 --- a/config/kernel-fsync.m4 +++ b/config/kernel-fsync.m4 @@ -1,20 +1,63 @@ dnl # -dnl # 2.6.35 API change -dnl # The dentry argument was deamed unused and dropped in 2.6.36. +dnl # Linux 2.6.x - 2.6.34 API dnl # -AC_DEFUN([ZFS_AC_KERNEL_FSYNC_2ARGS], [ - AC_MSG_CHECKING([whether fops->fsync() wants 2 args]) +AC_DEFUN([ZFS_AC_KERNEL_FSYNC_WITH_DENTRY], [ ZFS_LINUX_TRY_COMPILE([ #include ],[ - int (*fsync) (struct file *, int datasync) = NULL; - struct file_operations fops; + int (*fsync) (struct file *, struct dentry *, int) = NULL; + struct file_operations fops __attribute__ ((unused)); fops.fsync = fsync; ],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_2ARGS_FSYNC, 1, [fops->fsync() want 2 args]) + AC_MSG_RESULT([dentry]) + AC_DEFINE(HAVE_FSYNC_WITH_DENTRY, 1, + [fops->fsync() with dentry]) ],[ - AC_MSG_RESULT(no) ]) ]) + +dnl # +dnl # Linux 2.6.35 - Linux 3.0 API +dnl # +AC_DEFUN([ZFS_AC_KERNEL_FSYNC_WITHOUT_DENTRY], [ + ZFS_LINUX_TRY_COMPILE([ + #include + ],[ + int (*fsync) (struct file *, int) = NULL; + struct file_operations fops __attribute__ ((unused)); + + fops.fsync = fsync; + ],[ + AC_MSG_RESULT([no dentry]) + AC_DEFINE(HAVE_FSYNC_WITHOUT_DENTRY, 1, + [fops->fsync() without dentry]) + ],[ + ]) +]) + +dnl # +dnl # Linux 3.1 -x 3.x API +dnl # +AC_DEFUN([ZFS_AC_KERNEL_FSYNC_RANGE], [ + ZFS_LINUX_TRY_COMPILE([ + #include + ],[ + int (*fsync) (struct file *, loff_t, loff_t, int) = NULL; + struct file_operations fops __attribute__ ((unused)); + + fops.fsync = fsync; + ],[ + AC_MSG_RESULT([range]) + AC_DEFINE(HAVE_FSYNC_RANGE, 1, + [fops->fsync() with range]) + ],[ + ]) +]) + +AC_DEFUN([ZFS_AC_KERNEL_FSYNC], [ + AC_MSG_CHECKING([whether fops->fsync() wants]) + ZFS_AC_KERNEL_FSYNC_WITH_DENTRY + ZFS_AC_KERNEL_FSYNC_WITHOUT_DENTRY + ZFS_AC_KERNEL_FSYNC_RANGE +])