X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=config%2Fkernel-fsync.m4;h=862b89782e2a235675f2871ea1ad1834f9b3ed4e;hb=cac1f230e0537ceddead464dbd140e23a0556be6;hp=3f938426bda09776f8ee03663aafe356d3253c0b;hpb=79713039a2b6e0ed223d141b4a8a8455f282d2f2;p=zfs.git diff --git a/config/kernel-fsync.m4 b/config/kernel-fsync.m4 index 3f93842..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; + 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 +])