diff options
author | YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> | 2006-08-23 17:23:11 -0700 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-22 14:55:54 -0700 |
commit | cb15d9c224fcc03b32396c1c7416e777c2dcca34 (patch) | |
tree | f946bbfc56daeff71560bd0fb2648bf49a38cd87 /net/ipv6/route.c | |
parent | 150730d5a53b1bbb486101b2a5fb82ff0d3f916e (diff) | |
download | lwn-cb15d9c224fcc03b32396c1c7416e777c2dcca34.tar.gz lwn-cb15d9c224fcc03b32396c1c7416e777c2dcca34.zip |
[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.c | 13 |
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: break; } - if (!rt) { - if (rt6_need_strict(&fl->fl6_dst)) { - while ((fn = fn->parent) != NULL) { - if (fn->fn_flags & RTN_ROOT) - break; - if (fn->fn_flags & RTN_RTINFO) - goto restart; - } - } + if (!rt) rt = &ip6_null_entry; - } + BACKTRACK(&fl->fl6_src); +out: dst_hold(&rt->u.dst); read_unlock_bh(&table->tb6_lock); |