summaryrefslogtreecommitdiff
path: root/net/ipv6/route.c
diff options
context:
space:
mode:
authorNicolas Dichtel <nicolas.dichtel@6wind.com>2012-11-01 22:58:22 +0000
committerDavid S. Miller <davem@davemloft.net>2012-11-02 21:38:19 -0400
commit1a72418bd7f0edcb85c817964efd370254fe749d (patch)
tree7dca5eafc784425519789e9651cbd3cac78f9760 /net/ipv6/route.c
parent2bc80059fe19229e68a306ce12f5e61e80b92c5c (diff)
downloadlwn-1a72418bd7f0edcb85c817964efd370254fe749d.tar.gz
lwn-1a72418bd7f0edcb85c817964efd370254fe749d.zip
ipv6/multipath: remove flag NLM_F_EXCL after the first nexthop
fib6_add_rt2node() will reject the nexthop if this flag is set, so we perform the check only for the first nexthop. Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/route.c')
-rw-r--r--net/ipv6/route.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index c42650cf8d4d..9c7b5d800495 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2449,6 +2449,12 @@ beginning:
goto beginning;
}
}
+ /* Because each route is added like a single route we remove
+ * this flag after the first nexthop (if there is a collision,
+ * we have already fail to add the first nexthop:
+ * fib6_add_rt2node() has reject it).
+ */
+ cfg->fc_nlinfo.nlh->nlmsg_flags &= ~NLM_F_EXCL;
rtnh = rtnh_next(rtnh, &remaining);
}