mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 16:01:14 +07:00
netns: switch ->get()/->put()/->install()/->inum() to working with &net->ns
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
58be28256d
commit
ff24870f46
@ -347,7 +347,7 @@ struct net *get_net_ns_by_fd(int fd)
|
||||
|
||||
ei = get_proc_ns(file_inode(file));
|
||||
if (ei->ns_ops == &netns_operations)
|
||||
net = get_net(ei->ns);
|
||||
net = get_net(container_of(ei->ns, struct net, ns));
|
||||
else
|
||||
net = ERR_PTR(-EINVAL);
|
||||
|
||||
@ -640,17 +640,22 @@ static void *netns_get(struct task_struct *task)
|
||||
net = get_net(nsproxy->net_ns);
|
||||
task_unlock(task);
|
||||
|
||||
return net;
|
||||
return net ? &net->ns : NULL;
|
||||
}
|
||||
|
||||
static inline struct net *to_net_ns(struct ns_common *ns)
|
||||
{
|
||||
return container_of(ns, struct net, ns);
|
||||
}
|
||||
|
||||
static void netns_put(void *ns)
|
||||
{
|
||||
put_net(ns);
|
||||
put_net(to_net_ns(ns));
|
||||
}
|
||||
|
||||
static int netns_install(struct nsproxy *nsproxy, void *ns)
|
||||
{
|
||||
struct net *net = ns;
|
||||
struct net *net = to_net_ns(ns);
|
||||
|
||||
if (!ns_capable(net->user_ns, CAP_SYS_ADMIN) ||
|
||||
!ns_capable(current_user_ns(), CAP_SYS_ADMIN))
|
||||
@ -663,8 +668,7 @@ static int netns_install(struct nsproxy *nsproxy, void *ns)
|
||||
|
||||
static unsigned int netns_inum(void *ns)
|
||||
{
|
||||
struct net *net = ns;
|
||||
return net->ns.inum;
|
||||
return ((struct ns_common *)ns)->inum;
|
||||
}
|
||||
|
||||
const struct proc_ns_operations netns_operations = {
|
||||
|
Loading…
Reference in New Issue
Block a user