]> git.proxmox.com Git - mirror_zfs.git/blob - config/kernel-is_owner_or_cap.m4
Revert "Linux 6.5 compat: register_sysctl_table removed"
[mirror_zfs.git] / config / kernel-is_owner_or_cap.m4
1 dnl #
2 dnl # 2.6.39 API change,
3 dnl # The is_owner_or_cap() macro was renamed to inode_owner_or_capable(),
4 dnl # This is used for permission checks in the xattr and file attribute call
5 dnl # paths.
6 dnl #
7 dnl # 5.12 API change,
8 dnl # inode_owner_or_capable() now takes struct user_namespace *
9 dnl # to support idmapped mounts
10 dnl #
11 AC_DEFUN([ZFS_AC_KERNEL_SRC_INODE_OWNER_OR_CAPABLE], [
12 ZFS_LINUX_TEST_SRC([inode_owner_or_capable], [
13 #include <linux/fs.h>
14 ],[
15 struct inode *ip = NULL;
16 (void) inode_owner_or_capable(ip);
17 ])
18
19 ZFS_LINUX_TEST_SRC([inode_owner_or_capable_userns], [
20 #include <linux/fs.h>
21 ],[
22 struct inode *ip = NULL;
23 (void) inode_owner_or_capable(&init_user_ns, ip);
24 ])
25
26 ZFS_LINUX_TEST_SRC([inode_owner_or_capable_mnt_idmap], [
27 #include <linux/fs.h>
28 #include <linux/mnt_idmapping.h>
29 ],[
30 struct inode *ip = NULL;
31 (void) inode_owner_or_capable(&nop_mnt_idmap, ip);
32 ])
33 ])
34
35 AC_DEFUN([ZFS_AC_KERNEL_INODE_OWNER_OR_CAPABLE], [
36 AC_MSG_CHECKING([whether inode_owner_or_capable() exists])
37 ZFS_LINUX_TEST_RESULT([inode_owner_or_capable], [
38 AC_MSG_RESULT(yes)
39 AC_DEFINE(HAVE_INODE_OWNER_OR_CAPABLE, 1,
40 [inode_owner_or_capable() exists])
41 ], [
42 AC_MSG_RESULT(no)
43
44 AC_MSG_CHECKING(
45 [whether inode_owner_or_capable() takes user_ns])
46 ZFS_LINUX_TEST_RESULT([inode_owner_or_capable_userns], [
47 AC_MSG_RESULT(yes)
48 AC_DEFINE(HAVE_INODE_OWNER_OR_CAPABLE_USERNS, 1,
49 [inode_owner_or_capable() takes user_ns])
50 ],[
51 AC_MSG_RESULT(no)
52 AC_MSG_CHECKING(
53 [whether inode_owner_or_capable() takes mnt_idmap])
54 ZFS_LINUX_TEST_RESULT([inode_owner_or_capable_mnt_idmap], [
55 AC_MSG_RESULT(yes)
56 AC_DEFINE(HAVE_INODE_OWNER_OR_CAPABLE_IDMAP, 1,
57 [inode_owner_or_capable() takes mnt_idmap])
58 ], [
59 ZFS_LINUX_TEST_ERROR([capability])
60 ])
61 ])
62 ])
63 ])