diff options
| author | Christian Brauner <[email protected]> | 2021-01-21 13:19:36 +0000 |
|---|---|---|
| committer | Christian Brauner <[email protected]> | 2021-01-24 13:27:18 +0000 |
| commit | 7c02cf73d0e2bfa18b321731dd35212eb6c92265 (patch) | |
| tree | 433a5941a07e80a6610df72ae753e75e5bec0710 /net/unix/af_unix.c | |
| parent | open: handle idmapped mounts (diff) | |
| download | kernel-7c02cf73d0e2bfa18b321731dd35212eb6c92265.tar.gz kernel-7c02cf73d0e2bfa18b321731dd35212eb6c92265.zip | |
af_unix: handle idmapped mounts
When binding a non-abstract AF_UNIX socket it will gain a representation
in the filesystem. Enable the socket infrastructure to handle idmapped
mounts by passing down the user namespace of the mount the socket will
be created from. If the initial user namespace is passed nothing changes
so non-idmapped mounts will see identical behavior as before.
Link: https://lore.kernel.org/r/[email protected]
Cc: Christoph Hellwig <[email protected]>
Cc: David Howells <[email protected]>
Cc: Al Viro <[email protected]>
Cc: [email protected]
Reviewed-by: Christoph Hellwig <[email protected]>
Reviewed-by: James Morris <[email protected]>
Signed-off-by: Christian Brauner <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
| -rw-r--r-- | net/unix/af_unix.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 9a1f3c04402e..5a31307ceb76 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -996,8 +996,8 @@ static int unix_mknod(const char *sun_path, umode_t mode, struct path *res) */ err = security_path_mknod(&path, dentry, mode, 0); if (!err) { - err = vfs_mknod(&init_user_ns, d_inode(path.dentry), dentry, - mode, 0); + err = vfs_mknod(mnt_user_ns(path.mnt), d_inode(path.dentry), + dentry, mode, 0); if (!err) { res->mnt = mntget(path.mnt); res->dentry = dget(dentry); |
