]> err.no Git - linux-2.6/blobdiff - net/ipv6/anycast.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy...
[linux-2.6] / net / ipv6 / anycast.c
index 9c7f83fbc3a1d28b89bf7f26115c4d8d39f92085..e5f56c953b58f8ab989c51d90eab205567de6b14 100644 (file)
@@ -334,9 +334,7 @@ int ipv6_dev_ac_inc(struct net_device *dev, struct in6_addr *addr)
        idev->ac_list = aca;
        write_unlock_bh(&idev->lock);
 
-       dst_hold(&rt->u.dst);
-       if (ip6_ins_rt(rt))
-               dst_release(&rt->u.dst);
+       ip6_ins_rt(rt);
 
        addrconf_join_solict(dev, &aca->aca_addr);
 
@@ -378,10 +376,7 @@ int __ipv6_dev_ac_dec(struct inet6_dev *idev, struct in6_addr *addr)
        addrconf_leave_solict(idev, &aca->aca_addr);
 
        dst_hold(&aca->aca_rt->u.dst);
-       if (ip6_del_rt(aca->aca_rt))
-               dst_free(&aca->aca_rt->u.dst);
-       else
-               dst_release(&aca->aca_rt->u.dst);
+       ip6_del_rt(aca->aca_rt);
 
        aca_put(aca);
        return 0;