]) # LC_GLIBC_SUPPORT_FHANDLES
#
+# LC_GLIBC_SUPPORT_COPY_FILE_RANGE
+#
+AC_DEFUN([LC_GLIBC_SUPPORT_COPY_FILE_RANGE], [
+AC_CHECK_FUNCS([copy_file_range],
+ [AC_DEFINE(HAVE_COPY_FILE_RANGE, 1,
+ [copy_file_range() is supported])],
+ [AC_MSG_WARN([copy_file_range() is not supported])])
+]) # LC_GLIBC_SUPPORT_COPY_FILE_RANGE
+
+#
# LC_STACK_SIZE
#
# Ensure the stack size is at least 8k in Lustre server (all kernels)
[], [enable_pinger="yes"])
AC_MSG_RESULT([$enable_pinger])
AS_IF([test "x$enable_pinger" != xno],
- [AC_DEFINE(CONFIG_LUSTRE_PINGER, 1,[Use the Pinger])])
+ [AC_DEFINE(CONFIG_LUSTRE_FS_PINGER, 1,[Use the Pinger])])
]) # LC_CONFIG_PINGER
#
[], [enable_gss="auto"])
AC_MSG_RESULT([$enable_gss])
+AC_ARG_VAR([TEST_JOBS],
+ [simultaneous jobs during configure (defaults to $(nproc))])
+if test "x$ac_cv_env_TEST_JOBS_set" != "xset"; then
+ TEST_JOBS=${TEST_JOBS:-$(nproc)}
+fi
+AC_SUBST(TEST_JOBS)
+
+AC_ARG_VAR([TEST_DIR],
+ [location of temporary parallel configure tests (defaults to $PWD/lb2)])
+ TEST_DIR=${TEST_DIR:-$PWD/_lpb}
+AC_SUBST(TEST_DIR)
+
AS_IF([test "x$enable_gss" != xno], [
LC_CONFIG_GSS_KEYRING
LC_KEY_TYPE_INSTANTIATE_2ARGS
]) # LC_HAVE_DIR_CONTEXT
#
+# LC_D_COMPARE_5ARGS
+#
+# 3.11 dentry_operations.d_compare() taken 5 arguments.
+#
+AC_DEFUN([LC_D_COMPARE_5ARGS], [
+LB_CHECK_COMPILE([if 'd_compare' taken 5 arguments],
+d_compare_5args, [
+ #include <linux/dcache.h>
+],[
+ ((struct dentry_operations*)0)->d_compare(NULL,NULL,0,NULL,NULL);
+],[
+ AC_DEFINE(HAVE_D_COMPARE_5ARGS, 1,
+ [d_compare need 5 arguments])
+])
+]) # LC_D_COMPARE_5ARGS
+
+#
# LC_HAVE_DCOUNT
#
# 3.11 need to access d_count to get dentry reference count
]) # LC_HAVE_POSIX_ACL_VALID_USER_NS
#
+# LC_D_COMPARE_4ARGS
+#
+# Kernel version 4.8 commit 6fa67e707559303e086303aeecc9e8b91ef497d5
+# get rid of 'parent' argument of ->d_compare()
+#
+AC_DEFUN([LC_D_COMPARE_4ARGS], [
+LB_CHECK_COMPILE([if 'd_compare' taken 4 arguments],
+d_compare_4args, [
+ #include <linux/dcache.h>
+],[
+ ((struct dentry_operations*)0)->d_compare(NULL,0,NULL,NULL);
+],[
+ AC_DEFINE(HAVE_D_COMPARE_4ARGS, 1,
+ [d_compare need 4 arguments])
+])
+]) # LC_D_COMPARE_4ARGS
+
+#
# LC_FULL_NAME_HASH_3ARGS
#
# Kernel version 4.8 commit 8387ff2577eb9ed245df9a39947f66976c6bcd02
]) # LC_INODE_TIMESPEC64
#
-# LC_XA_IS_VALUE
-# kernel 4.19-rc6 commit 3159f943aafdbacb2f94c38fdaadabf2bbde2a14
-# xarray: Replace exceptional entries
-# adds xa_is_value
-#
-AC_DEFUN([LC_XA_IS_VALUE], [
-LB_CHECK_COMPILE([xa_is_value exist],
-xa_is_value, [
- #include <linux/xarray.h>
-],[
- xa_is_value(NULL);
-],[
- AC_DEFINE(HAVE_XA_IS_VALUE, 1, [xa_is_value exist])
-])
-]) # LC_XA_IS_VALUE
-
-#
# LC___XA_SET_MARK
#
# kernel 4.20 commit v4.19-rc5-248-g9b89a0355144
-# xarray: Add XArray marks
+# xarray: Add XArray marks - replaced radix_tree_tag_set
#
AC_DEFUN([LC___XA_SET_MARK], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
LB_CHECK_COMPILE([if '__xa_set_mark' exists],
__xa_set_mark, [
- #include <linux/xarray.h>
#include <linux/fs.h>
+ #include <linux/radix-tree.h>
],[
- struct xarray *xa = NULL;
-
- __xa_set_mark(xa, 0, PAGECACHE_TAG_DIRTY);
+ radix_tree_tag_set(NULL, 0, PAGECACHE_TAG_DIRTY);
],[
- AC_DEFINE(HAVE___XA_SET_MARK, 1,
+ AC_DEFINE(HAVE_RADIX_TREE_TAG_SET, 1,
[__xa_set_mark exists])
])
+EXTRA_KCFLAGS="$tmp_flags"
]) # LC___XA_SET_MARK
#
EXTRA_KCFLAGS="$tmp_flags"
]) # LC_LM_COMPARE_OWNER_EXISTS
+AC_DEFUN([LC_PROG_LINUX_SRC], [])
+AC_DEFUN([LC_PROG_LINUX_RESULTS], [])
+
#
# LC_FSCRYPT_SUPPORT
#
LC_CONFIG_GSS
LC_GLIBC_SUPPORT_FHANDLES
+ LC_GLIBC_SUPPORT_COPY_FILE_RANGE
LC_OPENSSL_SSK
LC_OPENSSL_GETSEPOL
# 3.11
LC_INVALIDATE_RANGE
LC_HAVE_DIR_CONTEXT
+ LC_D_COMPARE_5ARGS
LC_HAVE_DCOUNT
LC_HAVE_DENTRY_D_U_D_ALIAS
LC_HAVE_DENTRY_D_CHILD
# 4.8
LC_HAVE_POSIX_ACL_VALID_USER_NS
+ LC_D_COMPARE_4ARGS
LC_FULL_NAME_HASH_3ARGS
LC_STRUCT_POSIX_ACL_XATTR
LC_IOP_XATTR
# 4.18
LC_INODE_TIMESPEC64
- LC_XA_IS_VALUE
# 4.20
LC___XA_SET_MARK
LC_UAPI_LINUX_MOUNT_H
LC_HAVE_SUNRPC_CACHE_HASH_LOCK_IS_A_SPINLOCK
- LC_REPLACE_EXCEPTIONAL_ENTRIES
# 5.1
LC_HAS_LINUX_SELINUX_ENABLED
])
])
+# lustre/tests/statx_test.c
+AC_CHECK_FUNCS([statx])
+
# lustre/utils/lfs.c
AS_IF([test "$enable_dist" = "no"], [
AC_CHECK_LIB([z], [crc32], [
])
AC_SUBST(SELINUX)
+AC_CHECK_LIB([keyutils], [add_key])
+
# Super safe df
AC_MSG_CHECKING([whether to report minimum OST free space])
AC_ARG_ENABLE([mindf],
lustre/include/Makefile
lustre/include/lustre/Makefile
lustre/include/uapi/linux/lustre/Makefile
+lustre/kernel_patches/targets/4.18-rhel8.2.target
lustre/kernel_patches/targets/4.18-rhel8.1.target
lustre/kernel_patches/targets/4.18-rhel8.target
lustre/kernel_patches/targets/3.10-rhel7.8.target
lustre/kernel_patches/targets/3.10-rhel7.5.target
lustre/kernel_patches/targets/4.14-rhel7.5.target
lustre/kernel_patches/targets/4.14-rhel7.6.target
-lustre/kernel_patches/targets/3.0-sles11.target
-lustre/kernel_patches/targets/3.0-sles11sp3.target
-lustre/kernel_patches/targets/3.0-sles11sp4.target
-lustre/kernel_patches/targets/3.12-sles12.target
-lustre/kernel_patches/targets/4.4-sles12.target
-lustre/kernel_patches/targets/4.4-sles12sp3.target
lustre/kernel_patches/targets/4.12-sles12sp4.target
lustre/kernel_patches/targets/4.12-sles15sp1.target
lustre/kernel_patches/targets/3.x-fc18.target