summaryrefslogtreecommitdiffstats
path: root/net/ipv6/route.c
diff options
context:
space:
mode:
authorDaniel Lezcano2008-03-04 08:31:11 +0100
committerDavid S. Miller2008-03-04 08:31:11 +0100
commit63152fc0de4dfe83da543bf133cef73d885a50fc (patch)
tree2b6546f2ebd5b3fa6d48bfd7ca4085d0f96e771f /net/ipv6/route.c
parent[NETNS][IPV6] ip6_fib - dynamically allocate gc-timer (diff)
downloadkernel-qcow2-linux-63152fc0de4dfe83da543bf133cef73d885a50fc.tar.gz
kernel-qcow2-linux-63152fc0de4dfe83da543bf133cef73d885a50fc.tar.xz
kernel-qcow2-linux-63152fc0de4dfe83da543bf133cef73d885a50fc.zip
[NETNS][IPV6] ip6_fib - gc timer per namespace
Move the timer initialization at the network namespace creation and store the network namespace in the timer argument. That enables multiple timers (one per network namespace) to do garbage collecting. Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com> 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.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index fd44721abebb..b13eb0111270 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -952,7 +952,7 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
icmp6_dst_gc_list = &rt->u.dst;
spin_unlock_bh(&icmp6_dst_lock);
- fib6_force_start_gc();
+ fib6_force_start_gc(dev->nd_net);
out:
return &rt->u.dst;
@@ -1230,6 +1230,9 @@ install_route:
rt->u.dst.dev = dev;
rt->rt6i_idev = idev;
rt->rt6i_table = table;
+
+ cfg->fc_nlinfo.nl_net = dev->nd_net;
+
return __ip6_ins_rt(rt, &cfg->fc_nlinfo);
out: