summaryrefslogtreecommitdiffstats
path: root/net/ipv4/proc.c
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@openvz.org>2008-07-18 13:06:50 +0200
committerDavid S. Miller <davem@davemloft.net>2008-07-18 13:06:50 +0200
commit60bdde95807e982a824be9cfdd35055cc721a88a (patch)
tree286bd367b687f9a1daddcc6b0fde2f2e8ef4c0ef /net/ipv4/proc.c
parentproc: show per-net ip_devconf.forwarding in /proc/net/snmp (diff)
downloadlinux-60bdde95807e982a824be9cfdd35055cc721a88a.tar.xz
linux-60bdde95807e982a824be9cfdd35055cc721a88a.zip
proc: clean the ip_misc_proc_init and ip_proc_init_net error paths
After all this stuff is moved outside, this function can look better. Besides, I tuned the error path in ip_proc_init_net to make it have only 2 exit points, not 3. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/proc.c')
-rw-r--r--net/ipv4/proc.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c
index 120e1f7461da..554390431a4e 100644
--- a/net/ipv4/proc.c
+++ b/net/ipv4/proc.c
@@ -508,7 +508,7 @@ static const struct file_operations netstat_seq_fops = {
static __net_init int ip_proc_init_net(struct net *net)
{
if (!proc_net_fops_create(net, "sockstat", S_IRUGO, &sockstat_seq_fops))
- return -ENOMEM;
+ goto out_sockstat;
if (!proc_net_fops_create(net, "netstat", S_IRUGO, &netstat_seq_fops))
goto out_netstat;
if (!proc_net_fops_create(net, "snmp", S_IRUGO, &snmp_seq_fops))
@@ -520,6 +520,7 @@ out_snmp:
proc_net_remove(net, "netstat");
out_netstat:
proc_net_remove(net, "sockstat");
+out_sockstat:
return -ENOMEM;
}
@@ -537,16 +538,6 @@ static __net_initdata struct pernet_operations ip_proc_ops = {
int __init ip_misc_proc_init(void)
{
- int rc = 0;
-
- if (register_pernet_subsys(&ip_proc_ops))
- goto out_pernet;
-
-out:
- return rc;
-
-out_pernet:
- rc = -ENOMEM;
- goto out;
+ return register_pernet_subsys(&ip_proc_ops);
}