diff options
Diffstat (limited to 'sys/contrib/openzfs/config/kernel-acl.m4')
-rw-r--r-- | sys/contrib/openzfs/config/kernel-acl.m4 | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/sys/contrib/openzfs/config/kernel-acl.m4 b/sys/contrib/openzfs/config/kernel-acl.m4 index c6da4df24eb9..a155b59d006a 100644 --- a/sys/contrib/openzfs/config/kernel-acl.m4 +++ b/sys/contrib/openzfs/config/kernel-acl.m4 @@ -162,6 +162,9 @@ dnl # dnl # 3.1 API change, dnl # Check if inode_operations contains the function get_acl dnl # +dnl # 5.15 API change, +dnl # Added the bool rcu argument to get_acl for rcu path walk. +dnl # AC_DEFUN([ZFS_AC_KERNEL_SRC_INODE_OPERATIONS_GET_ACL], [ ZFS_LINUX_TEST_SRC([inode_operations_get_acl], [ #include <linux/fs.h> @@ -174,14 +177,32 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_INODE_OPERATIONS_GET_ACL], [ .get_acl = get_acl_fn, }; ],[]) + + ZFS_LINUX_TEST_SRC([inode_operations_get_acl_rcu], [ + #include <linux/fs.h> + + struct posix_acl *get_acl_fn(struct inode *inode, int type, + bool rcu) { return NULL; } + + static const struct inode_operations + iops __attribute__ ((unused)) = { + .get_acl = get_acl_fn, + }; + ],[]) ]) AC_DEFUN([ZFS_AC_KERNEL_INODE_OPERATIONS_GET_ACL], [ AC_MSG_CHECKING([whether iops->get_acl() exists]) ZFS_LINUX_TEST_RESULT([inode_operations_get_acl], [ AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_GET_ACL, 1, [iops->get_acl() exists]) ],[ - ZFS_LINUX_TEST_ERROR([iops->get_acl()]) + ZFS_LINUX_TEST_RESULT([inode_operations_get_acl_rcu], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_GET_ACL_RCU, 1, [iops->get_acl() takes rcu]) + ],[ + ZFS_LINUX_TEST_ERROR([iops->get_acl()]) + ]) ]) ]) |