diff options
-rw-r--r-- | net/ipv6/route.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 1cf00d857fc1..ed72ae3c54e7 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -2263,8 +2263,7 @@ static void ip6_link_failure(struct sk_buff *skb) if (rt) { rcu_read_lock(); if (rt->rt6i_flags & RTF_CACHE) { - if (dst_hold_safe(&rt->dst)) - rt6_remove_exception_rt(rt); + rt6_remove_exception_rt(rt); } else { struct fib6_info *from; struct fib6_node *fn; @@ -3266,8 +3265,8 @@ static int ip6_del_cached_rt(struct rt6_info *rt, struct fib6_config *cfg) if (cfg->fc_flags & RTF_GATEWAY && !ipv6_addr_equal(&cfg->fc_gateway, &rt->rt6i_gateway)) goto out; - if (dst_hold_safe(&rt->dst)) - rc = rt6_remove_exception_rt(rt); + + rc = rt6_remove_exception_rt(rt); out: return rc; } |