Commit 140dce91 authored by Brian Behlendorf's avatar Brian Behlendorf Committed by Kamal Mostafa

UBUNTU: zfs: Fix user namespaces uid/gid mapping

BugLink: http://bugs.launchpad.net/bugs/1567558

Cherry-picked from 874bd959f4f15b3d4b007160ee7ad3f4111dd341 ('Fix user
namespaces uid/gid mapping')
https://github.com/zfsonlinux/zfs.git

As described in torvalds/linux@5f3a4a2 the &init_user_ns, and
not the current user_ns, should be passed to posix_acl_from_xattr()
and posix_acl_to_xattr().  Conveniently the init_user_ns is
available through the init credential (kcred).
Signed-off-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: default avatarMassimo Maggi <me@massimo-maggi.eu>
Closes #4177
Signed-off-by: default avatarTim Gardner <tim.gardner@canonical.com>
Acked-by: default avatarSeth Forshee <seth.forshee@canonical.com>
Acked-by: default avatarColin Ian King <colin.king@canonical.com>
Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
parent 7b036fdf
......@@ -190,20 +190,20 @@ fn(struct inode *ip, const char *name, const void *buffer, \
/*
* Linux 3.7 API change. posix_acl_{from,to}_xattr gained the user_ns
* parameter. For the HAVE_POSIX_ACL_FROM_XATTR_USERNS version the
* userns _may_ not be correct because it's used outside the RCU.
* parameter. All callers are expected to pass the &init_user_ns which
* is available through the init credential (kcred).
*/
#ifdef HAVE_POSIX_ACL_FROM_XATTR_USERNS
static inline struct posix_acl *
zpl_acl_from_xattr(const void *value, int size)
{
return (posix_acl_from_xattr(CRED()->user_ns, value, size));
return (posix_acl_from_xattr(kcred->user_ns, value, size));
}
static inline int
zpl_acl_to_xattr(struct posix_acl *acl, void *value, int size)
{
return (posix_acl_to_xattr(CRED()->user_ns, acl, value, size));
return (posix_acl_to_xattr(kcred->user_ns, acl, value, size));
}
#else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment