aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/route.c
diff options
context:
space:
mode:
authorBenjamin Thery <benjamin.thery@bull.net>2008-12-10 19:30:15 -0500
committerDavid S. Miller <davem@davemloft.net>2008-12-10 19:30:15 -0500
commit8229efdaef1e7913ae1712c0ba752f267e5fcd5e (patch)
treeba85dabf90f17b1b735fb8dda4b9bb11c5cd445d /net/ipv6/route.c
parent8b90fc7e5b43aaef941044a4785a42439015b539 (diff)
netns: ip6mr: enable namespace support in ipv6 multicast forwarding code
This last patch makes the appropriate changes to use and propagate the network namespace where needed in IPv6 multicast forwarding code. This consists mainly in replacing all the remaining init_net occurences with current netns pointer retrieved from sockets, net devices or mfc6_caches depending on the routines' contexts. Some routines receive a new 'struct net' parameter to propagate the current netns: * ip6mr_get_route * ip6mr_cache_report * ip6mr_cache_find * ip6mr_cache_unresolved * mif6_add/mif6_delete * ip6mr_mfc_add/ip6mr_mfc_delete * ip6mr_reg_vif All the IPv6 multicast forwarding variables moved to struct netns_ipv6 by the previous patches are now referenced in the correct namespace. Changelog: ========== * Take into account the net associated to mfc6_cache when matching entries in mfc_unres_queue list. * Call mroute_clean_tables() in ip6mr_net_exit() to free memory allocated per-namespace. * Call dev_net_set() in ip6mr_reg_vif() to initialize dev->nd_net correctly. Signed-off-by: Benjamin Thery <benjamin.thery@bull.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r--net/ipv6/route.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 9da1ece466a2..18c486cf4987 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2194,7 +2194,7 @@ static int rt6_fill_node(struct net *net,
2194 if (iif) { 2194 if (iif) {
2195#ifdef CONFIG_IPV6_MROUTE 2195#ifdef CONFIG_IPV6_MROUTE
2196 if (ipv6_addr_is_multicast(&rt->rt6i_dst.addr)) { 2196 if (ipv6_addr_is_multicast(&rt->rt6i_dst.addr)) {
2197 int err = ip6mr_get_route(skb, rtm, nowait); 2197 int err = ip6mr_get_route(net, skb, rtm, nowait);
2198 if (err <= 0) { 2198 if (err <= 0) {
2199 if (!nowait) { 2199 if (!nowait) {
2200 if (err == 0) 2200 if (err == 0)