]> git.proxmox.com Git - mirror_zfs-debian.git/blobdiff - config/kernel.m4
Imported Upstream version 0.6.5.9
[mirror_zfs-debian.git] / config / kernel.m4
index 53720eeef5cfff103ae5aaf04aab064081d9e1b6..5b8abf75160b3f8ed8c0217bb25ffbc9a882e673 100644 (file)
@@ -33,8 +33,12 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
        ZFS_AC_KERNEL_BLK_QUEUE_FLUSH
        ZFS_AC_KERNEL_BLK_QUEUE_MAX_HW_SECTORS
        ZFS_AC_KERNEL_BLK_QUEUE_MAX_SEGMENTS
+       ZFS_AC_KERNEL_BLK_QUEUE_HAVE_BIO_RW_UNPLUG
+       ZFS_AC_KERNEL_BLK_QUEUE_HAVE_BLK_PLUG
        ZFS_AC_KERNEL_GET_DISK_RO
        ZFS_AC_KERNEL_GET_GENDISK
+       ZFS_AC_KERNEL_HAVE_BIO_SET_OP_ATTRS
+       ZFS_AC_KERNEL_GENERIC_READLINK_GLOBAL
        ZFS_AC_KERNEL_DISCARD_GRANULARITY
        ZFS_AC_KERNEL_CONST_XATTR_HANDLER
        ZFS_AC_KERNEL_XATTR_HANDLER_NAME
@@ -44,6 +48,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
        ZFS_AC_KERNEL_INODE_OWNER_OR_CAPABLE
        ZFS_AC_KERNEL_POSIX_ACL_FROM_XATTR_USERNS
        ZFS_AC_KERNEL_POSIX_ACL_RELEASE
+       ZFS_AC_KERNEL_SET_CACHED_ACL_USABLE
        ZFS_AC_KERNEL_POSIX_ACL_CHMOD
        ZFS_AC_KERNEL_POSIX_ACL_EQUIV_MODE_WANTS_UMODE_T
        ZFS_AC_KERNEL_POSIX_ACL_VALID_WITH_NS
@@ -52,7 +57,8 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
        ZFS_AC_KERNEL_INODE_OPERATIONS_CHECK_ACL
        ZFS_AC_KERNEL_INODE_OPERATIONS_CHECK_ACL_WITH_FLAGS
        ZFS_AC_KERNEL_INODE_OPERATIONS_GET_ACL
-       ZFS_AC_KERNE_GET_ACL_HANDLE_CACHE
+       ZFS_AC_KERNEL_INODE_OPERATIONS_SET_ACL
+       ZFS_AC_KERNEL_GET_ACL_HANDLE_CACHE
        ZFS_AC_KERNEL_SHOW_OPTIONS
        ZFS_AC_KERNEL_FILE_INODE
        ZFS_AC_KERNEL_FSYNC
@@ -61,6 +67,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
        ZFS_AC_KERNEL_NR_CACHED_OBJECTS
        ZFS_AC_KERNEL_FREE_CACHED_OBJECTS
        ZFS_AC_KERNEL_FALLOCATE
+       ZFS_AC_KERNEL_AIO_FSYNC
        ZFS_AC_KERNEL_MKDIR_UMODE_T
        ZFS_AC_KERNEL_LOOKUP_NAMEIDATA
        ZFS_AC_KERNEL_CREATE_NAMEIDATA
@@ -71,6 +78,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
        ZFS_AC_KERNEL_ENCODE_FH_WITH_INODE
        ZFS_AC_KERNEL_COMMIT_METADATA
        ZFS_AC_KERNEL_CLEAR_INODE
+       ZFS_AC_KERNEL_SETATTR_PREPARE
        ZFS_AC_KERNEL_INSERT_INODE_LOCKED
        ZFS_AC_KERNEL_D_MAKE_ROOT
        ZFS_AC_KERNEL_D_OBTAIN_ALIAS
@@ -94,10 +102,13 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
        ZFS_AC_KERNEL_LSEEK_EXECUTE
        ZFS_AC_KERNEL_VFS_ITERATE
        ZFS_AC_KERNEL_VFS_RW_ITERATE
+       ZFS_AC_KERNEL_GENERIC_WRITE_CHECKS
        ZFS_AC_KERNEL_KMAP_ATOMIC_ARGS
        ZFS_AC_KERNEL_FOLLOW_DOWN_ONE
        ZFS_AC_KERNEL_MAKE_REQUEST_FN
        ZFS_AC_KERNEL_GENERIC_IO_ACCT
+       ZFS_AC_KERNEL_RENAME_WANTS_FLAGS
+       ZFS_AC_KERNEL_HAVE_GENERIC_SETXATTR
 
        AS_IF([test "$LINUX_OBJ" != "$LINUX"], [
                KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
@@ -468,9 +479,35 @@ AC_DEFUN([ZFS_AC_KERNEL_CONFIG], [
                ])
        ])
 
+       ZFS_AC_KERNEL_CONFIG_THREAD_SIZE
        ZFS_AC_KERNEL_CONFIG_DEBUG_LOCK_ALLOC
 ])
 
+dnl #
+dnl # Check configured THREAD_SIZE
+dnl #
+dnl # The stack size will vary by architecture, but as of Linux 3.15 on x86_64
+dnl # the default thread stack size was increased to 16K from 8K.  Therefore,
+dnl # on newer kernels and some architectures stack usage optimizations can be
+dnl # conditionally applied to improve performance without negatively impacting
+dnl # stability.
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_CONFIG_THREAD_SIZE], [
+       AC_MSG_CHECKING([whether kernel was built with 16K or larger stacks])
+       ZFS_LINUX_TRY_COMPILE([
+               #include <linux/module.h>
+       ],[
+               #if (THREAD_SIZE < 16384)
+               #error "THREAD_SIZE is less than 16K"
+               #endif
+       ],[
+               AC_MSG_RESULT([yes])
+               AC_DEFINE(HAVE_LARGE_STACKS, 1, [kernel has large stacks])
+       ],[
+               AC_MSG_RESULT([no])
+       ])
+])
+
 dnl #
 dnl # Check CONFIG_DEBUG_LOCK_ALLOC
 dnl #
@@ -580,7 +617,7 @@ dnl #
 dnl # ZFS_LINUX_CONFIG
 dnl #
 AC_DEFUN([ZFS_LINUX_CONFIG],
-       [AC_MSG_CHECKING([whether Linux was built with CONFIG_$1])
+       [AC_MSG_CHECKING([whether kernel was built with CONFIG_$1])
        ZFS_LINUX_TRY_COMPILE([
                #include <linux/module.h>
        ],[