diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2010-03-07 21:14:23 -0500 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2011-05-10 17:34:26 -0400 |
commit | 13b6f57623bc485e116344fe91fbcb29f149242b (patch) | |
tree | f2d43576e248ac61b967734a6ccd313b971fb430 /net/core | |
parent | 0663c6f8fa37d777ede74ff991a0cba3a42fcbd7 (diff) |
ns proc: Add support for the network namespace.
Implementing file descriptors for the network namespace
is simple and straight forward.
Acked-by: David S. Miller <davem@davemloft.net>
Acked-by: Daniel Lezcano <daniel.lezcano@free.fr>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/net_namespace.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index 3f860261c5ee..bf7707e09a80 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c | |||
@@ -573,3 +573,34 @@ void unregister_pernet_device(struct pernet_operations *ops) | |||
573 | mutex_unlock(&net_mutex); | 573 | mutex_unlock(&net_mutex); |
574 | } | 574 | } |
575 | EXPORT_SYMBOL_GPL(unregister_pernet_device); | 575 | EXPORT_SYMBOL_GPL(unregister_pernet_device); |
576 | |||
577 | #ifdef CONFIG_NET_NS | ||
578 | static void *netns_get(struct task_struct *task) | ||
579 | { | ||
580 | struct net *net; | ||
581 | rcu_read_lock(); | ||
582 | net = get_net(task->nsproxy->net_ns); | ||
583 | rcu_read_unlock(); | ||
584 | return net; | ||
585 | } | ||
586 | |||
587 | static void netns_put(void *ns) | ||
588 | { | ||
589 | put_net(ns); | ||
590 | } | ||
591 | |||
592 | static int netns_install(struct nsproxy *nsproxy, void *ns) | ||
593 | { | ||
594 | put_net(nsproxy->net_ns); | ||
595 | nsproxy->net_ns = get_net(ns); | ||
596 | return 0; | ||
597 | } | ||
598 | |||
599 | const struct proc_ns_operations netns_operations = { | ||
600 | .name = "net", | ||
601 | .type = CLONE_NEWNET, | ||
602 | .get = netns_get, | ||
603 | .put = netns_put, | ||
604 | .install = netns_install, | ||
605 | }; | ||
606 | #endif | ||