Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 251667
b: refs/heads/master
c: 13b6f57
h: refs/heads/master
i:
  251665: c35331f
  251663: 415b858
v: v3
  • Loading branch information
Eric W. Biederman committed May 10, 2011
1 parent fc7449d commit 33c96e4
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0663c6f8fa37d777ede74ff991a0cba3a42fcbd7
refs/heads/master: 13b6f57623bc485e116344fe91fbcb29f149242b
3 changes: 3 additions & 0 deletions trunk/fs/proc/namespaces.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@


static const struct proc_ns_operations *ns_entries[] = {
#ifdef CONFIG_NET_NS
&netns_operations,
#endif
};

static const struct file_operations ns_file_operations = {
Expand Down
1 change: 1 addition & 0 deletions trunk/include/linux/proc_fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,7 @@ struct proc_ns_operations {
void (*put)(void *ns);
int (*install)(struct nsproxy *nsproxy, void *ns);
};
extern const struct proc_ns_operations netns_operations;

union proc_op {
int (*proc_get_link)(struct inode *, struct path *);
Expand Down
31 changes: 31 additions & 0 deletions trunk/net/core/net_namespace.c
Original file line number Diff line number Diff line change
Expand Up @@ -573,3 +573,34 @@ void unregister_pernet_device(struct pernet_operations *ops)
mutex_unlock(&net_mutex);
}
EXPORT_SYMBOL_GPL(unregister_pernet_device);

#ifdef CONFIG_NET_NS
static void *netns_get(struct task_struct *task)
{
struct net *net;
rcu_read_lock();
net = get_net(task->nsproxy->net_ns);
rcu_read_unlock();
return net;
}

static void netns_put(void *ns)
{
put_net(ns);
}

static int netns_install(struct nsproxy *nsproxy, void *ns)
{
put_net(nsproxy->net_ns);
nsproxy->net_ns = get_net(ns);
return 0;
}

const struct proc_ns_operations netns_operations = {
.name = "net",
.type = CLONE_NEWNET,
.get = netns_get,
.put = netns_put,
.install = netns_install,
};
#endif

0 comments on commit 33c96e4

Please sign in to comment.