diff options
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/af_inet6.c | 5 | ||||
-rw-r--r-- | net/ipv6/sysctl_net_ipv6.c | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 72b898fe2dde..70662bf8ab98 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c | |||
@@ -66,8 +66,6 @@ MODULE_AUTHOR("Cast of dozens"); | |||
66 | MODULE_DESCRIPTION("IPv6 protocol stack for Linux"); | 66 | MODULE_DESCRIPTION("IPv6 protocol stack for Linux"); |
67 | MODULE_LICENSE("GPL"); | 67 | MODULE_LICENSE("GPL"); |
68 | 68 | ||
69 | int sysctl_ipv6_bindv6only __read_mostly; | ||
70 | |||
71 | /* The inetsw6 table contains everything that inet6_create needs to | 69 | /* The inetsw6 table contains everything that inet6_create needs to |
72 | * build a new socket. | 70 | * build a new socket. |
73 | */ | 71 | */ |
@@ -193,7 +191,7 @@ lookup_protocol: | |||
193 | np->mcast_hops = -1; | 191 | np->mcast_hops = -1; |
194 | np->mc_loop = 1; | 192 | np->mc_loop = 1; |
195 | np->pmtudisc = IPV6_PMTUDISC_WANT; | 193 | np->pmtudisc = IPV6_PMTUDISC_WANT; |
196 | np->ipv6only = sysctl_ipv6_bindv6only; | 194 | np->ipv6only = init_net.ipv6.sysctl.bindv6only; |
197 | 195 | ||
198 | /* Init the ipv4 part of the socket since we can have sockets | 196 | /* Init the ipv4 part of the socket since we can have sockets |
199 | * using v6 API for ipv4. | 197 | * using v6 API for ipv4. |
@@ -721,6 +719,7 @@ static void cleanup_ipv6_mibs(void) | |||
721 | 719 | ||
722 | static int inet6_net_init(struct net *net) | 720 | static int inet6_net_init(struct net *net) |
723 | { | 721 | { |
722 | net->ipv6.sysctl.bindv6only = 0; | ||
724 | return 0; | 723 | return 0; |
725 | } | 724 | } |
726 | 725 | ||
diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c index 7970f3366f87..13be97a928cb 100644 --- a/net/ipv6/sysctl_net_ipv6.c +++ b/net/ipv6/sysctl_net_ipv6.c | |||
@@ -35,7 +35,7 @@ static ctl_table ipv6_table_template[] = { | |||
35 | { | 35 | { |
36 | .ctl_name = NET_IPV6_BINDV6ONLY, | 36 | .ctl_name = NET_IPV6_BINDV6ONLY, |
37 | .procname = "bindv6only", | 37 | .procname = "bindv6only", |
38 | .data = &sysctl_ipv6_bindv6only, | 38 | .data = &init_net.ipv6.sysctl.bindv6only, |
39 | .maxlen = sizeof(int), | 39 | .maxlen = sizeof(int), |
40 | .mode = 0644, | 40 | .mode = 0644, |
41 | .proc_handler = &proc_dointvec | 41 | .proc_handler = &proc_dointvec |
@@ -116,6 +116,8 @@ static int ipv6_sysctl_net_init(struct net *net) | |||
116 | ipv6_table[0].child = ipv6_route_table; | 116 | ipv6_table[0].child = ipv6_route_table; |
117 | ipv6_table[1].child = ipv6_icmp_table; | 117 | ipv6_table[1].child = ipv6_icmp_table; |
118 | 118 | ||
119 | ipv6_table[2].data = &net->ipv6.sysctl.bindv6only; | ||
120 | |||
119 | net->ipv6.sysctl.table = register_net_sysctl_table(net, net_ipv6_ctl_path, | 121 | net->ipv6.sysctl.table = register_net_sysctl_table(net, net_ipv6_ctl_path, |
120 | ipv6_table); | 122 | ipv6_table); |
121 | if (!net->ipv6.sysctl.table) | 123 | if (!net->ipv6.sysctl.table) |