From 45a69d53919e13edcca285a55fd6930fa15f2d84 Mon Sep 17 00:00:00 2001 From: Stephen Rothwell Date: Thu, 12 May 2011 13:51:13 +1000 Subject: [PATCH] --- yaml --- r: 251673 b: refs/heads/master c: 956c920786694f51601a0ef7ee12956fd6aa216e h: refs/heads/master i: 251671: be26084da1b428cf7ff7640dbf1206c4c25b8192 v: v3 --- [refs] | 2 +- trunk/net/core/net_namespace.c | 49 +++++++++++++++++++--------------- 2 files changed, 28 insertions(+), 23 deletions(-) diff --git a/[refs] b/[refs] index ee58e7e8f16e..7e74eeeb6afb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 62ca24baf1417e56fd2ae4ff07adfe7f6a2e42fc +refs/heads/master: 956c920786694f51601a0ef7ee12956fd6aa216e diff --git a/trunk/net/core/net_namespace.c b/trunk/net/core/net_namespace.c index b7403ff4d6c6..d4cf178bdfc7 100644 --- a/trunk/net/core/net_namespace.c +++ b/trunk/net/core/net_namespace.c @@ -316,6 +316,28 @@ void __put_net(struct net *net) } EXPORT_SYMBOL_GPL(__put_net); +struct net *get_net_ns_by_fd(int fd) +{ + struct proc_inode *ei; + struct file *file; + struct net *net; + + net = ERR_PTR(-EINVAL); + file = proc_ns_fget(fd); + if (!file) + goto out; + + ei = PROC_I(file->f_dentry->d_inode); + if (ei->ns_ops != &netns_operations) + goto out; + + net = get_net(ei->ns); +out: + if (file) + fput(file); + return net; +} + #else struct net *copy_net_ns(unsigned long flags, struct net *old_net) { @@ -323,6 +345,11 @@ struct net *copy_net_ns(unsigned long flags, struct net *old_net) return ERR_PTR(-EINVAL); return old_net; } + +struct net *get_net_ns_by_fd(int fd) +{ + return ERR_PTR(-EINVAL); +} #endif struct net *get_net_ns_by_pid(pid_t pid) @@ -345,28 +372,6 @@ struct net *get_net_ns_by_pid(pid_t pid) } EXPORT_SYMBOL_GPL(get_net_ns_by_pid); -struct net *get_net_ns_by_fd(int fd) -{ - struct proc_inode *ei; - struct file *file; - struct net *net; - - net = ERR_PTR(-EINVAL); - file = proc_ns_fget(fd); - if (!file) - goto out; - - ei = PROC_I(file->f_dentry->d_inode); - if (ei->ns_ops != &netns_operations) - goto out; - - net = get_net(ei->ns); -out: - if (file) - fput(file); - return net; -} - static int __init net_ns_init(void) { struct net_generic *ng;