X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=config%2Fkernel-fallocate.m4;h=6ac5ae65c7644f3202ae4fa96f98d00ccbeb5a90;hb=2404b01499019f6a8589cec79201b8871ec48081;hp=d551276c77fee2059f07c38d4843b3b635099612;hpb=cb2d19010d8fbcf6c22585cd8763fad3ba7db724;p=zfs.git diff --git a/config/kernel-fallocate.m4 b/config/kernel-fallocate.m4 index d551276..6ac5ae6 100644 --- a/config/kernel-fallocate.m4 +++ b/config/kernel-fallocate.m4 @@ -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 + ],[ + 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 ])