]) # LC_CONFIG_SUNRPC
#
-# LC_HAVE_CRYPTO_HASH
-#
-# 4.6 kernel commit 896545098777564212b9e91af4c973f094649aa7
-# removed crypto_hash support. Since GSS only works with
-# crypto_hash it has to be disabled for newer distros.
-#
-AC_DEFUN([LC_HAVE_CRYPTO_HASH], [
-LB_CHECK_COMPILE([if crypto_hash API is supported],
-crypto_hash, [
- #include <linux/crypto.h>
-],[
- crypto_hash_digestsize(NULL);
-], [], [enable_gss="no"])
-])
-]) # LC_HAVE_CRYPTO_HASH
-
-#
# LC_CONFIG_GSS (default 'auto' (tests for dependencies, if found, enables))
#
# Build gss and related tools of Lustre. Currently both kernel and user space
AS_IF([test "x$enable_gss" != xno], [
LC_CONFIG_GSS_KEYRING
- LC_HAVE_CRYPTO_HASH
LC_HAVE_CRED_TGCRED
LC_KEY_TYPE_INSTANTIATE_2ARGS
sunrpc_required=$enable_gss
]) # LC_HAVE_XATTR_HANDLER_SIMPLIFIED
#
+# LC_HAVE_BIP_ITER_BIO_INTEGRITY_PAYLOAD
+#
+# 4.3 replace interval with interval_exp in 'struct blk_integrity'.
+#
+AC_DEFUN([LC_HAVE_BIP_ITER_BIO_INTEGRITY_PAYLOAD], [
+LB_CHECK_COMPILE([if 'bio_integrity_payload.bip_iter' exist],
+bio_integrity_payload_bip_iter, [
+ #include <linux/bio.h>
+],[
+ ((struct bio_integrity_payload *)0)->bip_iter.bi_size = 0;
+],[
+ AC_DEFINE(HAVE_BIP_ITER_BIO_INTEGRITY_PAYLOAD, 1,
+ [bio_integrity_payload.bip_iter exist])
+])
+]) # LC_HAVE_BIP_ITER_BIO_INTEGRITY_PAYLOAD
+
+#
+# LC_BIO_INTEGRITY_PREP_FN
+#
+# Lustre kernel patch extents bio_integrity_prep to accept optional
+# generate/verify_fn as extra args.
+#
+AC_DEFUN([LC_BIO_INTEGRITY_PREP_FN], [
+LB_CHECK_COMPILE([if 'bio_integrity_prep_fn' exists],
+bio_integrity_prep_fn, [
+ #include <linux/bio.h>
+],[
+ bio_integrity_prep_fn(NULL, NULL, NULL);
+],[
+ AC_DEFINE(HAVE_BIO_INTEGRITY_PREP_FN, 1,
+ [kernel has bio_integrity_prep_fn])
+ AC_SUBST(PATCHED_INTEGRITY_INTF)
+],[
+ AC_SUBST(PATCHED_INTEGRITY_INTF, [#])
+])
+]) # LC_BIO_INTEGRITY_PREP_FN
+
+#
# LC_HAVE_LOCKS_LOCK_FILE_WAIT
#
# 4.4 kernel have moved locks API users to
]) # LC_VM_OPERATIONS_REMOVE_VMF_ARG
#
+# LC_HAVE_KEY_USAGE_REFCOUNT
+#
+# Kernel version 4.11 commit fff292914d3a2f1efd05ca71c2ba72a3c663201e
+# converted key.usage from atomic_t to refcount_t.
+#
+AC_DEFUN([LC_HAVE_KEY_USAGE_REFCOUNT], [
+LB_CHECK_COMPILE([if 'key.usage' is refcount_t],
+key_usage_refcount, [
+ #include <linux/key.h>
+],[
+ struct key key = { };
+
+ refcount_read(&key.usage);
+],[
+ AC_DEFINE(HAVE_KEY_USAGE_REFCOUNT, 1, [key.usage is of type refcount_t])
+])
+]) #LC_HAVE_KEY_USAGE_REFCOUNT
+
+#
+# LC_HAVE_CRYPTO_MAX_ALG_NAME_128
+#
+# Kernel version 4.11 commit f437a3f477cce402dbec6537b29e9e33962c9f73
+# switched CRYPTO_MAX_ALG_NAME from 64 to 128.
+#
+AC_DEFUN([LC_HAVE_CRYPTO_MAX_ALG_NAME_128], [
+LB_CHECK_COMPILE([if 'CRYPTO_MAX_ALG_NAME' is 128],
+crypto_max_alg_name, [
+ #include <linux/crypto.h>
+],[
+ #if CRYPTO_MAX_ALG_NAME != 128
+ exit(1);
+ #endif
+],[
+ AC_DEFINE(HAVE_CRYPTO_MAX_ALG_NAME_128, 1,
+ ['CRYPTO_MAX_ALG_NAME' is 128])
+])
+]) # LC_HAVE_CRYPTO_MAX_ALG_NAME_128
+
+#
# Kernel version 4.12 commit 47f38c539e9a42344ff5a664942075bd4df93876
# CURRENT_TIME is not 64 bit time safe so it was replaced with
# current_time()
])
]) # LC_BI_BDEV
-
#
# LC_PROG_LINUX
#
# 4.3
LC_HAVE_INTERVAL_EXP_BLK_INTEGRITY
+ LC_HAVE_BIP_ITER_BIO_INTEGRITY_PAYLOAD
LC_HAVE_CACHE_HEAD_HLIST
LC_HAVE_XATTR_HANDLER_SIMPLIFIED
# 4.11
LC_INODEOPS_ENHANCED_GETATTR
LC_VM_OPERATIONS_REMOVE_VMF_ARG
+ LC_HAVE_KEY_USAGE_REFCOUNT
+ LC_HAVE_CRYPTO_MAX_ALG_NAME_128
# 4.12
LC_CURRENT_TIME
LC_PAGEVEC_INIT_ONE_PARAM
LC_BI_BDEV
+ # kernel patch to extend integrity interface
+ LC_BIO_INTEGRITY_PREP_FN
+
#
AS_IF([test "x$enable_server" != xno], [
LC_STACK_SIZE
lustre/autoMakefile
lustre/autoconf/Makefile
lustre/conf/Makefile
+lustre/conf/resource/Makefile
lustre/contrib/Makefile
lustre/doc/Makefile
lustre/include/Makefile
lustre/include/lustre/Makefile
lustre/include/uapi/linux/lustre/Makefile
-lustre/kernel_patches/targets/3.10-rhel7.target
+lustre/kernel_patches/targets/3.10-rhel7.6.target
+lustre/kernel_patches/targets/3.10-rhel7.5.target
+lustre/kernel_patches/targets/4.14-rhel7.5.target
lustre/kernel_patches/targets/2.6-rhel6.9.target
lustre/kernel_patches/targets/2.6-rhel6.8.target
lustre/kernel_patches/targets/2.6-rhel6.7.target