1dnl # 2dnl # 2.6.38 API change 3dnl # ns_capable() was introduced 4dnl # 5AC_DEFUN([ZFS_AC_KERNEL_SRC_NS_CAPABLE], [ 6 ZFS_LINUX_TEST_SRC([ns_capable], [ 7 #include <linux/capability.h> 8 ],[ 9 ns_capable((struct user_namespace *)NULL, CAP_SYS_ADMIN); 10 ]) 11]) 12 13AC_DEFUN([ZFS_AC_KERNEL_NS_CAPABLE], [ 14 AC_MSG_CHECKING([whether ns_capable exists]) 15 ZFS_LINUX_TEST_RESULT([ns_capable], [ 16 AC_MSG_RESULT(yes) 17 ],[ 18 ZFS_LINUX_TEST_ERROR([ns_capable()]) 19 ]) 20]) 21 22dnl # 23dnl # 2.6.39 API change 24dnl # struct user_namespace was added to struct cred_t as cred->user_ns member 25dnl # 26AC_DEFUN([ZFS_AC_KERNEL_SRC_CRED_USER_NS], [ 27 ZFS_LINUX_TEST_SRC([cred_user_ns], [ 28 #include <linux/cred.h> 29 ],[ 30 struct cred cr; 31 cr.user_ns = (struct user_namespace *)NULL; 32 ]) 33]) 34 35AC_DEFUN([ZFS_AC_KERNEL_CRED_USER_NS], [ 36 AC_MSG_CHECKING([whether cred_t->user_ns exists]) 37 ZFS_LINUX_TEST_RESULT([cred_user_ns], [ 38 AC_MSG_RESULT(yes) 39 ],[ 40 ZFS_LINUX_TEST_ERROR([cred_t->user_ns()]) 41 ]) 42]) 43 44dnl # 45dnl # 3.4 API change 46dnl # kuid_has_mapping() and kgid_has_mapping() were added to distinguish 47dnl # between internal kernel uids/gids and user namespace uids/gids. 48dnl # 49AC_DEFUN([ZFS_AC_KERNEL_SRC_KUID_HAS_MAPPING], [ 50 ZFS_LINUX_TEST_SRC([kuid_has_mapping], [ 51 #include <linux/uidgid.h> 52 ],[ 53 kuid_has_mapping((struct user_namespace *)NULL, KUIDT_INIT(0)); 54 kgid_has_mapping((struct user_namespace *)NULL, KGIDT_INIT(0)); 55 ]) 56]) 57 58AC_DEFUN([ZFS_AC_KERNEL_KUID_HAS_MAPPING], [ 59 AC_MSG_CHECKING([whether kuid_has_mapping/kgid_has_mapping exist]) 60 ZFS_LINUX_TEST_RESULT([kuid_has_mapping], [ 61 AC_MSG_RESULT(yes) 62 ],[ 63 ZFS_LINUX_TEST_ERROR([kuid_has_mapping()]) 64 ]) 65]) 66 67AC_DEFUN([ZFS_AC_KERNEL_SRC_USERNS_CAPABILITIES], [ 68 ZFS_AC_KERNEL_SRC_NS_CAPABLE 69 ZFS_AC_KERNEL_SRC_HAS_CAPABILITY 70 ZFS_AC_KERNEL_SRC_CRED_USER_NS 71 ZFS_AC_KERNEL_SRC_KUID_HAS_MAPPING 72]) 73 74AC_DEFUN([ZFS_AC_KERNEL_USERNS_CAPABILITIES], [ 75 ZFS_AC_KERNEL_NS_CAPABLE 76 ZFS_AC_KERNEL_HAS_CAPABILITY 77 ZFS_AC_KERNEL_CRED_USER_NS 78 ZFS_AC_KERNEL_KUID_HAS_MAPPING 79]) 80