Revert "Improve AF hard disk detection"
[zfs.git] / config / kernel-fsync.m4
index 862b897..ca00d93 100644 (file)
@@ -37,7 +37,7 @@ AC_DEFUN([ZFS_AC_KERNEL_FSYNC_WITHOUT_DENTRY], [
 ])
 
 dnl #
-dnl # Linux 3.1 -x 3.x API
+dnl # Linux 3.1 - 3.x API
 dnl #
 AC_DEFUN([ZFS_AC_KERNEL_FSYNC_RANGE], [
        ZFS_LINUX_TRY_COMPILE([
@@ -55,9 +55,69 @@ AC_DEFUN([ZFS_AC_KERNEL_FSYNC_RANGE], [
        ])
 ])
 
+dnl #
+dnl # PaX Linux 2.6.x - 2.6.34 API
+dnl #
+AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_WITH_DENTRY], [
+       ZFS_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               int (*fsync) (struct file *, struct dentry *, int) = NULL;
+               file_operations_no_const fops __attribute__ ((unused));
+
+               fops.fsync = fsync;
+       ],[
+               AC_MSG_RESULT([dentry])
+               AC_DEFINE(HAVE_FSYNC_WITH_DENTRY, 1,
+                       [fops->fsync() with dentry])
+       ],[
+       ])
+])
+
+dnl #
+dnl # PaX Linux 2.6.35 - Linux 3.0 API
+dnl #
+AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_WITHOUT_DENTRY], [
+       ZFS_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               int (*fsync) (struct file *, int) = NULL;
+               file_operations_no_const fops __attribute__ ((unused));
+
+               fops.fsync = fsync;
+       ],[
+               AC_MSG_RESULT([no dentry])
+               AC_DEFINE(HAVE_FSYNC_WITHOUT_DENTRY, 1,
+                       [fops->fsync() without dentry])
+       ],[
+       ])
+])
+
+dnl #
+dnl # PaX Linux 3.1 - 3.x API
+dnl #
+AC_DEFUN([ZFS_AC_PAX_KERNEL_FSYNC_RANGE], [
+       ZFS_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               int (*fsync) (struct file *, loff_t, loff_t, int) = NULL;
+               file_operations_no_const 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
+       ZFS_AC_PAX_KERNEL_FSYNC_WITH_DENTRY
+       ZFS_AC_PAX_KERNEL_FSYNC_WITHOUT_DENTRY
+       ZFS_AC_PAX_KERNEL_FSYNC_RANGE
 ])