Linux 3.6 compat, iops->lookup()
[zfs.git] / config / kernel-fallocate.m4
index d551276..6ac5ae6 100644 (file)
@@ -39,10 +39,31 @@ AC_DEFUN([ZFS_AC_KERNEL_INODE_FALLOCATE], [
 ])
 
 dnl #
+dnl # PaX Linux 2.6.38 - 3.x API
+dnl #
+AC_DEFUN([ZFS_AC_PAX_KERNEL_FILE_FALLOCATE], [
+       AC_MSG_CHECKING([whether fops->fallocate() exists])
+       ZFS_LINUX_TRY_COMPILE([
+               #include <linux/fs.h>
+       ],[
+               long (*fallocate) (struct file *, int, loff_t, loff_t) = NULL;
+               struct file_operations_no_const fops __attribute__ ((unused)) = {
+                       .fallocate = fallocate,
+               };
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_FILE_FALLOCATE, 1, [fops->fallocate() exists])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+])
+
+dnl #
 dnl # The fallocate callback was moved from the inode_operations
 dnl # structure to the file_operations structure.
 dnl #
 AC_DEFUN([ZFS_AC_KERNEL_FALLOCATE], [
        ZFS_AC_KERNEL_FILE_FALLOCATE
        ZFS_AC_KERNEL_INODE_FALLOCATE
+       ZFS_AC_PAX_KERNEL_FILE_FALLOCATE
 ])