1dnl # 2dnl # 2.6.39 API change, 3dnl # The is_owner_or_cap() macro was renamed to inode_owner_or_capable(), 4dnl # This is used for permission checks in the xattr and file attribute call 5dnl # paths. 6dnl # 7dnl # 5.12 API change, 8dnl # inode_owner_or_capable() now takes struct user_namespace * 9dnl # to support idmapped mounts 10dnl # 11AC_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_idmapped], [ 20 #include <linux/fs.h> 21 ],[ 22 struct inode *ip = NULL; 23 (void) inode_owner_or_capable(&init_user_ns, ip); 24 ]) 25]) 26 27AC_DEFUN([ZFS_AC_KERNEL_INODE_OWNER_OR_CAPABLE], [ 28 AC_MSG_CHECKING([whether inode_owner_or_capable() exists]) 29 ZFS_LINUX_TEST_RESULT([inode_owner_or_capable], [ 30 AC_MSG_RESULT(yes) 31 AC_DEFINE(HAVE_INODE_OWNER_OR_CAPABLE, 1, 32 [inode_owner_or_capable() exists]) 33 ], [ 34 AC_MSG_RESULT(no) 35 36 AC_MSG_CHECKING( 37 [whether inode_owner_or_capable() takes user_ns]) 38 ZFS_LINUX_TEST_RESULT([inode_owner_or_capable_idmapped], [ 39 AC_MSG_RESULT(yes) 40 AC_DEFINE(HAVE_INODE_OWNER_OR_CAPABLE_IDMAPPED, 1, 41 [inode_owner_or_capable() takes user_ns]) 42 ],[ 43 ZFS_LINUX_TEST_ERROR([capability]) 44 ]) 45 ]) 46]) 47