aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/af_inet6.c
diff options
context:
space:
mode:
authorDaniel Lezcano <dlezcano@fr.ibm.com>2008-03-21 07:14:17 -0400
committerDavid S. Miller <davem@davemloft.net>2008-03-21 07:14:17 -0400
commit0c96d8c50bffb7f02690dd8a8cf1adb8e07e100f (patch)
tree9add3d8686b41aa3022b49d9cc57710865245e26 /net/ipv6/af_inet6.c
parentf40c8174d3c21bf178283f3ef3aa8c7bf238fdec (diff)
[NETNS][IPV6] udp6 - make proc per namespace
The proc init/exit functions take a new network namespace parameter in order to register/unregister /proc/net/udp6 for a namespace. Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/af_inet6.c')
-rw-r--r--net/ipv6/af_inet6.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
index 730a861b8f41..e3e09147d134 100644
--- a/net/ipv6/af_inet6.c
+++ b/net/ipv6/af_inet6.c
@@ -842,6 +842,8 @@ static void cleanup_ipv6_mibs(void)
842 842
843static int inet6_net_init(struct net *net) 843static int inet6_net_init(struct net *net)
844{ 844{
845 int err = 0;
846
845 net->ipv6.sysctl.bindv6only = 0; 847 net->ipv6.sysctl.bindv6only = 0;
846 net->ipv6.sysctl.flush_delay = 0; 848 net->ipv6.sysctl.flush_delay = 0;
847 net->ipv6.sysctl.ip6_rt_max_size = 4096; 849 net->ipv6.sysctl.ip6_rt_max_size = 4096;
@@ -853,12 +855,20 @@ static int inet6_net_init(struct net *net)
853 net->ipv6.sysctl.ip6_rt_min_advmss = IPV6_MIN_MTU - 20 - 40; 855 net->ipv6.sysctl.ip6_rt_min_advmss = IPV6_MIN_MTU - 20 - 40;
854 net->ipv6.sysctl.icmpv6_time = 1*HZ; 856 net->ipv6.sysctl.icmpv6_time = 1*HZ;
855 857
856 return 0; 858#ifdef CONFIG_PROC_FS
859 err = udp6_proc_init(net);
860 if (err)
861 goto out;
862out:
863#endif
864 return err;
857} 865}
858 866
859static void inet6_net_exit(struct net *net) 867static void inet6_net_exit(struct net *net)
860{ 868{
861 return; 869#ifdef CONFIG_PROC_FS
870 udp6_proc_exit(net);
871#endif
862} 872}
863 873
864static struct pernet_operations inet6_net_ops = { 874static struct pernet_operations inet6_net_ops = {
@@ -943,8 +953,6 @@ static int __init inet6_init(void)
943 goto proc_raw6_fail; 953 goto proc_raw6_fail;
944 if (tcp6_proc_init()) 954 if (tcp6_proc_init())
945 goto proc_tcp6_fail; 955 goto proc_tcp6_fail;
946 if (udp6_proc_init())
947 goto proc_udp6_fail;
948 if (udplite6_proc_init()) 956 if (udplite6_proc_init())
949 goto proc_udplite6_fail; 957 goto proc_udplite6_fail;
950 if (ipv6_misc_proc_init()) 958 if (ipv6_misc_proc_init())
@@ -1029,8 +1037,6 @@ proc_anycast6_fail:
1029proc_misc6_fail: 1037proc_misc6_fail:
1030 udplite6_proc_exit(); 1038 udplite6_proc_exit();
1031proc_udplite6_fail: 1039proc_udplite6_fail:
1032 udp6_proc_exit();
1033proc_udp6_fail:
1034 tcp6_proc_exit(); 1040 tcp6_proc_exit();
1035proc_tcp6_fail: 1041proc_tcp6_fail:
1036 raw6_proc_exit(); 1042 raw6_proc_exit();
@@ -1092,7 +1098,6 @@ static void __exit inet6_exit(void)
1092 ac6_proc_exit(); 1098 ac6_proc_exit();
1093 ipv6_misc_proc_exit(); 1099 ipv6_misc_proc_exit();
1094 udplite6_proc_exit(); 1100 udplite6_proc_exit();
1095 udp6_proc_exit();
1096 tcp6_proc_exit(); 1101 tcp6_proc_exit();
1097 raw6_proc_exit(); 1102 raw6_proc_exit();
1098#endif 1103#endif