+++ /dev/null
-dnl #
-dnl # 3.18 API change
-dnl # struct user_namespace inum moved from .proc_inum to .ns.inum.
-dnl #
-AC_DEFUN([ZFS_AC_KERNEL_SRC_USER_NS_COMMON_INUM], [
- ZFS_LINUX_TEST_SRC([user_ns_common_inum], [
- #include <linux/user_namespace.h>
- ], [
- struct user_namespace uns;
- uns.ns.inum = 0;
- ])
-])
-
-AC_DEFUN([ZFS_AC_KERNEL_USER_NS_COMMON_INUM], [
- AC_MSG_CHECKING([whether user_namespace->ns.inum exists])
- ZFS_LINUX_TEST_RESULT([user_ns_common_inum], [
- AC_MSG_RESULT(yes)
- AC_DEFINE(HAVE_USER_NS_COMMON_INUM, 1,
- [user_namespace->ns.inum exists])
- ],[
- AC_MSG_RESULT(no)
- ])
-])
ZFS_AC_KERNEL_SRC_KTHREAD
ZFS_AC_KERNEL_SRC_ZERO_PAGE
ZFS_AC_KERNEL_SRC___COPY_FROM_USER_INATOMIC
- ZFS_AC_KERNEL_SRC_USER_NS_COMMON_INUM
ZFS_AC_KERNEL_SRC_IDMAP_MNT_API
ZFS_AC_KERNEL_SRC_IDMAP_NO_USERNS
ZFS_AC_KERNEL_SRC_IATTR_VFSID
ZFS_AC_KERNEL_KTHREAD
ZFS_AC_KERNEL_ZERO_PAGE
ZFS_AC_KERNEL___COPY_FROM_USER_INATOMIC
- ZFS_AC_KERNEL_USER_NS_COMMON_INUM
ZFS_AC_KERNEL_IDMAP_MNT_API
ZFS_AC_KERNEL_IDMAP_NO_USERNS
ZFS_AC_KERNEL_IATTR_VFSID
char zd_dsname[]; /* name of the member dataset */
} zone_dataset_t;
-#if defined(CONFIG_USER_NS) && defined(HAVE_USER_NS_COMMON_INUM)
+#ifdef CONFIG_USER_NS
/*
* Returns:
* - 0 on success
return (error);
}
-#endif /* defined(CONFIG_USER_NS) && defined(HAVE_USER_NS_COMMON_INUM) */
+#endif /* CONFIG_USER_NS */
static unsigned int
user_ns_zoneid(struct user_namespace *user_ns)
{
unsigned int r;
-#if defined(HAVE_USER_NS_COMMON_INUM)
r = user_ns->ns.inum;
-#else
- r = user_ns->proc_inum;
-#endif
return (r);
}
return (NULL);
}
-#if defined(CONFIG_USER_NS) && defined(HAVE_USER_NS_COMMON_INUM)
+#ifdef CONFIG_USER_NS
static struct zone_dataset *
zone_dataset_lookup(zone_datasets_t *zds, const char *dataset, size_t dsnamelen)
{
return (0);
}
-#endif /* defined(CONFIG_USER_NS) && defined(HAVE_USER_NS_COMMON_INUM) */
+#endif /* CONFIG_USER_NS */
static int
zone_dataset_name_check(const char *dataset, size_t *dsnamelen)
int
zone_dataset_attach(cred_t *cred, const char *dataset, int userns_fd)
{
-#if defined(CONFIG_USER_NS) && defined(HAVE_USER_NS_COMMON_INUM)
+#ifdef CONFIG_USER_NS
struct user_namespace *userns;
zone_datasets_t *zds;
zone_dataset_t *zd;
return (0);
#else
return (ENXIO);
-#endif /* defined(CONFIG_USER_NS) && defined(HAVE_USER_NS_COMMON_INUM) */
+#endif /* CONFIG_USER_NS */
}
EXPORT_SYMBOL(zone_dataset_attach);
int
zone_dataset_detach(cred_t *cred, const char *dataset, int userns_fd)
{
-#if defined(CONFIG_USER_NS) && defined(HAVE_USER_NS_COMMON_INUM)
+#ifdef CONFIG_USER_NS
struct user_namespace *userns;
zone_datasets_t *zds;
zone_dataset_t *zd;
return (0);
#else
return (ENXIO);
-#endif /* defined(CONFIG_USER_NS) && defined(HAVE_USER_NS_COMMON_INUM) */
+#endif /* CONFIG_USER_NS */
}
EXPORT_SYMBOL(zone_dataset_detach);