aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/route.c
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2006-08-23 20:23:11 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2006-09-22 17:55:54 -0400
commitcb15d9c224fcc03b32396c1c7416e777c2dcca34 (patch)
treef946bbfc56daeff71560bd0fb2648bf49a38cd87 /net/ipv6/route.c
parent150730d5a53b1bbb486101b2a5fb82ff0d3f916e (diff)
[IPV6] NDISC: Search subtrees when backtracking on receipt of redirects.
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Acked-by: Ville Nuorvala <vnuorval@tcs.hut.fi Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r--net/ipv6/route.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index bd4cf175ff10..fd626d420cd1 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1332,17 +1332,10 @@ restart:
1332 break; 1332 break;
1333 } 1333 }
1334 1334
1335 if (!rt) { 1335 if (!rt)
1336 if (rt6_need_strict(&fl->fl6_dst)) {
1337 while ((fn = fn->parent) != NULL) {
1338 if (fn->fn_flags & RTN_ROOT)
1339 break;
1340 if (fn->fn_flags & RTN_RTINFO)
1341 goto restart;
1342 }
1343 }
1344 rt = &ip6_null_entry; 1336 rt = &ip6_null_entry;
1345 } 1337 BACKTRACK(&fl->fl6_src);
1338out:
1346 dst_hold(&rt->u.dst); 1339 dst_hold(&rt->u.dst);
1347 1340
1348 read_unlock_bh(&table->tb6_lock); 1341 read_unlock_bh(&table->tb6_lock);