|
@@ -728,7 +728,7 @@ static struct rt6_info *rt6_alloc_cow(const struct rt6_info *ort,
|
|
int attempts = !in_softirq();
|
|
int attempts = !in_softirq();
|
|
|
|
|
|
if (!(rt->rt6i_flags&RTF_GATEWAY)) {
|
|
if (!(rt->rt6i_flags&RTF_GATEWAY)) {
|
|
- if (rt->rt6i_dst.plen != 128 &&
|
|
|
|
|
|
+ if (ort->rt6i_dst.plen != 128 &&
|
|
ipv6_addr_equal(&ort->rt6i_dst.addr, daddr))
|
|
ipv6_addr_equal(&ort->rt6i_dst.addr, daddr))
|
|
rt->rt6i_flags |= RTF_ANYCAST;
|
|
rt->rt6i_flags |= RTF_ANYCAST;
|
|
ipv6_addr_copy(&rt->rt6i_gateway, daddr);
|
|
ipv6_addr_copy(&rt->rt6i_gateway, daddr);
|