]) # LC_CONFIG_GSS_KEYRING
#
-# LC_HAVE_CRED_TGCRED
-#
-# rhel7 struct cred has no member tgcred
-#
-AC_DEFUN([LC_HAVE_CRED_TGCRED], [
-LB_CHECK_COMPILE([if 'struct cred' has member 'tgcred'],
-cred_tgcred, [
- #include <linux/cred.h>
-],[
- ((struct cred *)0)->tgcred = NULL;
-],[
- AC_DEFINE(HAVE_CRED_TGCRED, 1,
- [struct cred has member tgcred])
-])
-]) # LC_HAVE_CRED_TGCRED
-
-#
# LC_KEY_TYPE_INSTANTIATE_2ARGS
#
# rhel7 key_type->instantiate takes 2 args (struct key, struct key_preparsed_payload)
AS_IF([test "x$enable_gss" != xno], [
LC_CONFIG_GSS_KEYRING
- LC_HAVE_CRED_TGCRED
LC_KEY_TYPE_INSTANTIATE_2ARGS
sunrpc_required=$enable_gss
LC_CONFIG_SUNRPC
#
# LC_ACCOUNT_PAGE_DIRTIED_3ARGS
#
-# 4.2 kernel page dirtied takes 3 arguments
+# 4.2 [to 4.5] kernel page dirtied takes 3 arguments
#
AC_DEFUN([LC_ACCOUNT_PAGE_DIRTIED_3ARGS], [
LB_CHECK_COMPILE([if 'account_page_dirtied' with 3 args exists],
#
# LC_FOP_ITERATE_SHARED
#
-# Kernel version 4.7 adds iterate_shared method to file_operations
+# Kernel v4.6-rc3-29-g6192269 adds iterate_shared method to file_operations
#
AC_DEFUN([LC_FOP_ITERATE_SHARED], [
LB_CHECK_COMPILE([if 'file_operations' has 'iterate_shared'],
]) # LC_FOP_ITERATE_SHARED
#
-# LC_FOPS_ITERATE_SHARED
-#
-# 4.7 commit ae05327a00fd47c34dfe25294b359a3f3fef96e8
-# ext4: switch to ->iterate_shared()
-# this replaces ext4_dir_operations iterate with iterate_shared.
-# dir_relaxed_shared() was also added in this commit, so we can
-# use that function to verify that the ext4_dir_operations is using
-# iterate_shared.
-#
-AC_DEFUN([LC_FOPS_ITERATE_SHARED], [
-LB_CHECK_COMPILE([if ext4_dir_operations uses iterate_shared],
-iterate_shared, [
- #include <linux/fs.h>
-],[
- ((struct file_operations *)0)->iterate_shared(NULL, NULL);
- dir_relax_shared(NULL);
-],[
- AC_DEFINE(HAVE_ITERATE_SHARED, 1,
- ['iterate_shared' is available])
-])
-]) # LC_FOPS_ITERATE_SHARED
-
-#
# LC_HAVE_POSIX_ACL_VALID_USER_NS
#
# 4.8 posix_acl_valid takes struct user_namespace
]) # LC_BI_STATUS
#
-# LC_UAPI_LINUX_MOUNT_H
-#
-# kernel 4.20 commit e262e32d6bde0f77fb0c95d977482fc872c51996
-# vfs: Suppress MS_* flag defs within the kernel ...
-#
-AC_DEFUN([LC_UAPI_LINUX_MOUNT_H], [
-tmp_flags="$EXTRA_KCFLAGS"
-EXTRA_KCFLAGS="-Werror"
-LB_CHECK_COMPILE([if MS_RDONLY was moved to uapi/linux/mount.h],
-uapi_linux_mount, [
- #include <uapi/linux/mount.h>
-],[
- int x = MS_RDONLY;
- (void)x;
-],[
- AC_DEFINE(HAVE_UAPI_LINUX_MOUNT_H, 1,
- [if MS_RDONLY was moved to uapi/linux/mount.h])
-])
-EXTRA_KCFLAGS="$tmp_flags"
-]) # LC_UAPI_LINUX_MOUNT_H
-
-#
-# LC_HAVE_SUNRPC_CACHE_HASH_LOCK_IS_A_SPINLOCK
-#
-# kernel 4.20 commit 1863d77f15da0addcd293a1719fa5d3ef8cde3ca
-# SUNRPC: Replace the cache_detail->hash_lock with a regular spinlock
-#
-# Now that the reader functions are all RCU protected, use a regular
-# spinlock rather than a reader/writer lock.
-#
-AC_DEFUN([LC_HAVE_SUNRPC_CACHE_HASH_LOCK_IS_A_SPINLOCK], [
-tmp_flags="$EXTRA_KCFLAGS"
-EXTRA_KCFLAGS="-Werror"
-LB_CHECK_COMPILE([if cache_detail->hash_lock is a spinlock],
-hash_lock_isa_spinlock_t, [
- #include <linux/sunrpc/cache.h>
-],[
- spinlock_t *lock = &(((struct cache_detail *)0)->hash_lock);
- spin_lock(lock);
-],[
- AC_DEFINE(HAVE_CACHE_HASH_SPINLOCK, 1,
- [if cache_detail->hash_lock is a spinlock])
-])
-EXTRA_KCFLAGS="$tmp_flags"
-]) # LC_HAVE_SUNRPC_CACHE_HASH_LOCK_IS_A_SPINLOCK
-
-#
# LC_BIO_INTEGRITY_ENABLED
#
# 4.13 removed bio_integrity_enabled
]) # LC_INODE_TIMESPEC64
#
+# LC___XA_SET_MARK
+#
+# kernel 4.20 commit v4.19-rc5-248-g9b89a0355144
+# xarray: Add XArray marks
+#
+AC_DEFUN([LC___XA_SET_MARK], [
+LB_CHECK_COMPILE([if '__xa_set_mark' exists],
+__xa_set_mark, [
+ #include <linux/xarray.h>
+ #include <linux/fs.h>
+],[
+ struct xarray *xa = NULL;
+
+ __xa_set_mark(xa, 0, PAGECACHE_TAG_DIRTY);
+],[
+ AC_DEFINE(HAVE___XA_SET_MARK, 1,
+ [__xa_set_mark exists])
+])
+]) # LC___XA_SET_MARK
+
+#
+# LC_UAPI_LINUX_MOUNT_H
+#
+# kernel 4.20 commit e262e32d6bde0f77fb0c95d977482fc872c51996
+# vfs: Suppress MS_* flag defs within the kernel ...
+#
+AC_DEFUN([LC_UAPI_LINUX_MOUNT_H], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if MS_RDONLY was moved to uapi/linux/mount.h],
+uapi_linux_mount, [
+ #include <uapi/linux/mount.h>
+],[
+ int x = MS_RDONLY;
+ (void)x;
+],[
+ AC_DEFINE(HAVE_UAPI_LINUX_MOUNT_H, 1,
+ [if MS_RDONLY was moved to uapi/linux/mount.h])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LC_UAPI_LINUX_MOUNT_H
+
+#
+# LC_HAVE_SUNRPC_CACHE_HASH_LOCK_IS_A_SPINLOCK
+#
+# kernel 4.20 commit 1863d77f15da0addcd293a1719fa5d3ef8cde3ca
+# SUNRPC: Replace the cache_detail->hash_lock with a regular spinlock
+#
+# Now that the reader functions are all RCU protected, use a regular
+# spinlock rather than a reader/writer lock.
+#
+AC_DEFUN([LC_HAVE_SUNRPC_CACHE_HASH_LOCK_IS_A_SPINLOCK], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if cache_detail->hash_lock is a spinlock],
+hash_lock_isa_spinlock_t, [
+ #include <linux/sunrpc/cache.h>
+],[
+ spinlock_t *lock = &(((struct cache_detail *)0)->hash_lock);
+ spin_lock(lock);
+],[
+ AC_DEFINE(HAVE_CACHE_HASH_SPINLOCK, 1,
+ [if cache_detail->hash_lock is a spinlock])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LC_HAVE_SUNRPC_CACHE_HASH_LOCK_IS_A_SPINLOCK
+
+#
# LC_HAS_LINUX_SELINUX_ENABLED
#
# kernel 5.1 commit 3d252529480c68bfd6a6774652df7c8968b28e41
]) # LC_HAS_LINUX_SELINUX_ENABLED
#
+# LC_ACCOUNT_PAGE_DIRTIED
+#
+# After 5.2 kernel page dirtied is not exported
+#
+AC_DEFUN([LC_ACCOUNT_PAGE_DIRTIED], [
+LB_CHECK_COMPILE([if 'account_page_dirtied' is exported],
+account_page_dirtied, [
+ #include <linux/mm.h>
+],[
+ account_page_dirtied(NULL, NULL);
+],[
+ AC_DEFINE(HAVE_ACCOUNT_PAGE_DIRTIED, 1,
+ [account_page_dirtied is available])
+])
+]) # LC_ACCOUNT_PAGE_DIRTIED
+
+#
# LC_BIO_BI_PHYS_SEGMENTS
#
# kernel 5.3-rc1 commit 14ccb66b3f585b2bc21e7256c96090abed5a512c
LC_D_IN_LOOKUP
LC_DIRECTIO_2ARGS
LC_GENERIC_WRITE_SYNC_2ARGS
- LC_FOPS_ITERATE_SHARED
+ LC_FOP_ITERATE_SHARED
# 4.8
LC_HAVE_POSIX_ACL_VALID_USER_NS
LC_INODE_TIMESPEC64
# 4.20
- LC_HAVE_SUNRPC_CACHE_HASH_LOCK_IS_A_SPINLOCK
-
- # 5.0
+ LC___XA_SET_MARK
LC_UAPI_LINUX_MOUNT_H
+ LC_HAVE_SUNRPC_CACHE_HASH_LOCK_IS_A_SPINLOCK
# 5.1
LC_HAS_LINUX_SELINUX_ENABLED
+ # 5.2
+ LC_ACCOUNT_PAGE_DIRTIED
+
# 5.3
LC_BIO_BI_PHYS_SEGMENTS
LC_LM_COMPARE_OWNER_EXISTS
lustre/include/Makefile
lustre/include/lustre/Makefile
lustre/include/uapi/linux/lustre/Makefile
+lustre/kernel_patches/targets/4.18-rhel8.1.target
lustre/kernel_patches/targets/4.18-rhel8.target
lustre/kernel_patches/targets/3.10-rhel7.7.target
lustre/kernel_patches/targets/3.10-rhel7.6.target