2018-03-07 23:40:42 +00:00
|
|
|
dnl #
|
|
|
|
dnl # 2.6.38 API change
|
|
|
|
dnl # ns_capable() was introduced
|
|
|
|
dnl #
|
2019-10-01 19:50:34 +00:00
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_NS_CAPABLE], [
|
|
|
|
ZFS_LINUX_TEST_SRC([ns_capable], [
|
2018-03-07 23:40:42 +00:00
|
|
|
#include <linux/capability.h>
|
|
|
|
],[
|
|
|
|
ns_capable((struct user_namespace *)NULL, CAP_SYS_ADMIN);
|
2019-10-01 19:50:34 +00:00
|
|
|
])
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_NS_CAPABLE], [
|
|
|
|
AC_MSG_CHECKING([whether ns_capable exists])
|
|
|
|
ZFS_LINUX_TEST_RESULT([ns_capable], [
|
2018-03-07 23:40:42 +00:00
|
|
|
AC_MSG_RESULT(yes)
|
|
|
|
],[
|
2019-11-12 16:59:06 +00:00
|
|
|
ZFS_LINUX_TEST_ERROR([ns_capable()])
|
2018-03-07 23:40:42 +00:00
|
|
|
])
|
|
|
|
])
|
|
|
|
|
2020-07-19 16:56:21 +00:00
|
|
|
dnl #
|
|
|
|
dnl # 4.10 API change
|
|
|
|
dnl # has_capability() was exported.
|
|
|
|
dnl #
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_HAS_CAPABILITY], [
|
|
|
|
ZFS_LINUX_TEST_SRC([has_capability], [
|
|
|
|
#include <linux/capability.h>
|
|
|
|
],[
|
|
|
|
struct task_struct *task = NULL;
|
|
|
|
int cap = 0;
|
|
|
|
bool result __attribute__ ((unused));
|
|
|
|
|
|
|
|
result = has_capability(task, cap);
|
|
|
|
])
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_HAS_CAPABILITY], [
|
|
|
|
AC_MSG_CHECKING([whether has_capability() is available])
|
|
|
|
ZFS_LINUX_TEST_RESULT_SYMBOL([has_capability],
|
|
|
|
[has_capability], [kernel/capability.c], [
|
|
|
|
AC_MSG_RESULT(yes)
|
|
|
|
AC_DEFINE(HAVE_HAS_CAPABILITY, 1, [has_capability() is available])
|
|
|
|
],[
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
])
|
|
|
|
])
|
|
|
|
|
2018-03-07 23:40:42 +00:00
|
|
|
dnl #
|
|
|
|
dnl # 2.6.39 API change
|
2019-11-12 16:59:06 +00:00
|
|
|
dnl # struct user_namespace was added to struct cred_t as cred->user_ns member
|
2018-03-07 23:40:42 +00:00
|
|
|
dnl #
|
2019-10-01 19:50:34 +00:00
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_CRED_USER_NS], [
|
|
|
|
ZFS_LINUX_TEST_SRC([cred_user_ns], [
|
2018-03-07 23:40:42 +00:00
|
|
|
#include <linux/cred.h>
|
|
|
|
],[
|
|
|
|
struct cred cr;
|
|
|
|
cr.user_ns = (struct user_namespace *)NULL;
|
2019-10-01 19:50:34 +00:00
|
|
|
])
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_CRED_USER_NS], [
|
|
|
|
AC_MSG_CHECKING([whether cred_t->user_ns exists])
|
|
|
|
ZFS_LINUX_TEST_RESULT([cred_user_ns], [
|
2018-03-07 23:40:42 +00:00
|
|
|
AC_MSG_RESULT(yes)
|
|
|
|
],[
|
2019-11-12 16:59:06 +00:00
|
|
|
ZFS_LINUX_TEST_ERROR([cred_t->user_ns()])
|
2018-03-07 23:40:42 +00:00
|
|
|
])
|
|
|
|
])
|
|
|
|
|
|
|
|
dnl #
|
|
|
|
dnl # 3.4 API change
|
|
|
|
dnl # kuid_has_mapping() and kgid_has_mapping() were added to distinguish
|
|
|
|
dnl # between internal kernel uids/gids and user namespace uids/gids.
|
|
|
|
dnl #
|
2019-10-01 19:50:34 +00:00
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_KUID_HAS_MAPPING], [
|
|
|
|
ZFS_LINUX_TEST_SRC([kuid_has_mapping], [
|
2018-03-07 23:40:42 +00:00
|
|
|
#include <linux/uidgid.h>
|
|
|
|
],[
|
|
|
|
kuid_has_mapping((struct user_namespace *)NULL, KUIDT_INIT(0));
|
|
|
|
kgid_has_mapping((struct user_namespace *)NULL, KGIDT_INIT(0));
|
2019-10-01 19:50:34 +00:00
|
|
|
])
|
|
|
|
])
|
|
|
|
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_KUID_HAS_MAPPING], [
|
|
|
|
AC_MSG_CHECKING([whether kuid_has_mapping/kgid_has_mapping exist])
|
|
|
|
ZFS_LINUX_TEST_RESULT([kuid_has_mapping], [
|
2018-03-07 23:40:42 +00:00
|
|
|
AC_MSG_RESULT(yes)
|
|
|
|
],[
|
2019-11-12 16:59:06 +00:00
|
|
|
ZFS_LINUX_TEST_ERROR([kuid_has_mapping()])
|
2018-03-07 23:40:42 +00:00
|
|
|
])
|
|
|
|
])
|
|
|
|
|
2019-10-01 19:50:34 +00:00
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_USERNS_CAPABILITIES], [
|
|
|
|
ZFS_AC_KERNEL_SRC_NS_CAPABLE
|
2020-07-19 16:56:21 +00:00
|
|
|
ZFS_AC_KERNEL_SRC_HAS_CAPABILITY
|
2019-10-01 19:50:34 +00:00
|
|
|
ZFS_AC_KERNEL_SRC_CRED_USER_NS
|
|
|
|
ZFS_AC_KERNEL_SRC_KUID_HAS_MAPPING
|
|
|
|
])
|
|
|
|
|
2018-03-07 23:40:42 +00:00
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_USERNS_CAPABILITIES], [
|
|
|
|
ZFS_AC_KERNEL_NS_CAPABLE
|
2020-07-19 16:56:21 +00:00
|
|
|
ZFS_AC_KERNEL_HAS_CAPABILITY
|
2018-03-07 23:40:42 +00:00
|
|
|
ZFS_AC_KERNEL_CRED_USER_NS
|
|
|
|
ZFS_AC_KERNEL_KUID_HAS_MAPPING
|
|
|
|
])
|