LINUX 5.3.0: Check for 'recurse' arg in keyring_search
[openafs.git] / src / cf / linux-test4.m4
index a93b51b..f7699ce 100644 (file)
@@ -114,7 +114,10 @@ AC_DEFUN([LINUX_EXPORTS_SYS_OPEN], [
 AC_DEFUN([LINUX_RECALC_SIGPENDING_ARG_TYPE], [
   AC_CHECK_LINUX_BUILD([for recalc_sigpending arg type],
                       [ac_cv_linux_func_recalc_sigpending_takes_void],
-                      [#include <linux/sched.h>],
+[#include <linux/sched.h>
+#ifdef HAVE_LINUX_SCHED_SIGNAL_H
+#include <linux/sched/signal.h>
+#endif],
                       [recalc_sigpending();],
                       [RECALC_SIGPENDING_TAKES_VOID],
                       [define if your recalc_sigpending takes void],
@@ -125,7 +128,10 @@ AC_DEFUN([LINUX_RECALC_SIGPENDING_ARG_TYPE], [
 AC_DEFUN([LINUX_SCHED_STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM], [
   AC_CHECK_LINUX_BUILD([for signal->rlim in struct task_struct],
                       [ac_cv_linux_sched_struct_task_struct_has_signal_rlim],
-                      [#include <linux/sched.h>],
+[#include <linux/sched.h>
+#ifdef HAVE_LINUX_SCHED_SIGNAL_H
+#include <linux/sched/signal.h>
+#endif],
                       [struct task_struct _tsk; printk("%d\n", _tsk.signal->rlim);],
                       [STRUCT_TASK_STRUCT_HAS_SIGNAL_RLIM],
                       [define if your struct task_struct has signal->rlim],
@@ -143,6 +149,16 @@ AC_DEFUN([LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG], [
                       [])
 ])
 
+AC_DEFUN([LINUX_KERNEL_PAGEVEC_INIT_COLD_ARG], [
+  AC_CHECK_LINUX_BUILD([for 2nd argument in pagevec_init found in pre-4.15 kernels],
+                      [ac_cv_linux_kernel_pagevec_init_cold_arg],
+                      [#include <linux/pagevec.h>],
+                      [pagevec_init(0,0);],
+                      [PAGEVEC_INIT_COLD_ARG],
+                      [define if your kernel uses 2 arguments for pagevec_init],
+                      [])
+])
+
 AC_DEFUN([LINUX_KERNEL_SOCK_CREATE], [
   AC_CHECK_LINUX_BUILD([for 5th argument in sock_create found in some SELinux kernels],
                       [ac_cv_linux_kernel_sock_create_v],
@@ -167,7 +183,22 @@ AC_DEFUN([LINUX_INODE_SETATTR_RETURN_TYPE], [
                       [])
 ])
 
-
+AC_DEFUN([LINUX_IATTR_64BIT_TIME], [
+  AC_CHECK_LINUX_BUILD([whether struct iattr->ia_ctime takes struct timespec64 or 32-bit struct timespec],
+                       [ac_cv_linux_func_iattr_ctime_takes_timespec64],
+                       [#include <linux/fs.h>
+                        #include <linux/timekeeping.h>],
+                       [struct iattr _attrs;
+                       #if defined(HAVE_LINUX_KTIME_GET_COARSE_REAL_TS64)
+                        ktime_get_coarse_real_ts64(&_attrs.ia_ctime);
+                       #else
+                        _attrs.ia_ctime = current_kernel_time64();
+                       #endif
+                       ],
+                       [IATTR_TAKES_64BIT_TIME],
+                       [define if struct iattr->ia_ctime takes struct timespec64],
+                       [])
+])
 
 AC_DEFUN([LINUX_AOP_WRITEBACK_CONTROL], [
   AC_CHECK_LINUX_BUILD([whether aop.writepage takes a writeback_control],
@@ -793,3 +824,28 @@ AC_DEFUN([LINUX_D_INVALIDATE_IS_VOID], [
                       [define if your d_invalidate returns void],
                       [])
 ])
+
+AC_DEFUN([LINUX_KERNEL_READ_OFFSET_IS_LAST], [
+  AC_CHECK_LINUX_BUILD([whether offset is the last argument to kernel_read],
+                       [ac_cv_linux_func_kernel_read_offset_is_last],
+                       [#include <linux/fs.h>],
+                       [
+                       ssize_t kernel_read(struct file *, void *, size_t, loff_t *);
+                       ],
+                       [KERNEL_READ_OFFSET_IS_LAST],
+                       [define if your kernel_read has offset as the last argument],
+                       [])
+])
+
+AC_DEFUN([LINUX_KEYRING_SEARCH_TAKES_RECURSE], [
+  AC_CHECK_LINUX_BUILD([whether keyring_search has the recurse parameter],
+                       [ac_cv_linux_func_keyring_search_takes_recurse],
+                       [#include <linux/key.h>
+                       key_ref_t tkey;],
+                       [
+                       keyring_search(tkey, NULL, NULL, 0);
+                       ],
+                       [KEYRING_SEARCH_TAKES_RECURSE],
+                       [define if your keyring_search has the recurse parameter],
+                       [])
+])