Patchwork [RFC(v2),net-next,10/13] ipv6: Do not depend on rt->n in ip6_pol_route().

login
register
mail settings
Submitter YOSHIFUJI Hideaki / 吉藤英明
Date Jan. 15, 2013, 4:46 p.m.
Message ID <50F587DA.5030904@linux-ipv6.org>
Download mbox | patch
Permalink /patch/212236/
State RFC
Delegated to: David Miller
Headers show

Comments

YOSHIFUJI Hideaki / 吉藤英明 - Jan. 15, 2013, 4:46 p.m.
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
---
 net/ipv6/route.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Patch

diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index ffdc8a6..e30a2aa 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -936,9 +936,10 @@  restart:
 	dst_hold(&rt->dst);
 	read_unlock_bh(&table->tb6_lock);
 
-	if (!rt->n && !(rt->rt6i_flags & RTF_NONEXTHOP))
+	if (!(rt->rt6i_flags & (RTF_NONEXTHOP | RTF_GATEWAY))) {
+		BUG_ON(rt->n != NULL);
 		nrt = rt6_alloc_cow(rt, &fl6->daddr, &fl6->saddr);
-	else if (!(rt->dst.flags & DST_HOST))
+	} else if (!(rt->dst.flags & DST_HOST))
 		nrt = rt6_alloc_clone(rt, &fl6->daddr);
 	else
 		goto out2;