diff options
Diffstat (limited to 'net/ipv6/anycast.c')
-rw-r--r-- | net/ipv6/anycast.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/ipv6/anycast.c b/net/ipv6/anycast.c index f058fbd808c..0e5e943446f 100644 --- a/net/ipv6/anycast.c +++ b/net/ipv6/anycast.c | |||
@@ -84,7 +84,7 @@ int ipv6_sock_ac_join(struct sock *sk, int ifindex, struct in6_addr *addr) | |||
84 | rt = rt6_lookup(net, addr, NULL, 0, 0); | 84 | rt = rt6_lookup(net, addr, NULL, 0, 0); |
85 | if (rt) { | 85 | if (rt) { |
86 | dev = rt->rt6i_dev; | 86 | dev = rt->rt6i_dev; |
87 | dst_release(&rt->u.dst); | 87 | dst_release(&rt->dst); |
88 | } else if (ishost) { | 88 | } else if (ishost) { |
89 | err = -EADDRNOTAVAIL; | 89 | err = -EADDRNOTAVAIL; |
90 | goto error; | 90 | goto error; |
@@ -244,7 +244,7 @@ static void aca_put(struct ifacaddr6 *ac) | |||
244 | { | 244 | { |
245 | if (atomic_dec_and_test(&ac->aca_refcnt)) { | 245 | if (atomic_dec_and_test(&ac->aca_refcnt)) { |
246 | in6_dev_put(ac->aca_idev); | 246 | in6_dev_put(ac->aca_idev); |
247 | dst_release(&ac->aca_rt->u.dst); | 247 | dst_release(&ac->aca_rt->dst); |
248 | kfree(ac); | 248 | kfree(ac); |
249 | } | 249 | } |
250 | } | 250 | } |
@@ -350,7 +350,7 @@ int __ipv6_dev_ac_dec(struct inet6_dev *idev, struct in6_addr *addr) | |||
350 | write_unlock_bh(&idev->lock); | 350 | write_unlock_bh(&idev->lock); |
351 | addrconf_leave_solict(idev, &aca->aca_addr); | 351 | addrconf_leave_solict(idev, &aca->aca_addr); |
352 | 352 | ||
353 | dst_hold(&aca->aca_rt->u.dst); | 353 | dst_hold(&aca->aca_rt->dst); |
354 | ip6_del_rt(aca->aca_rt); | 354 | ip6_del_rt(aca->aca_rt); |
355 | 355 | ||
356 | aca_put(aca); | 356 | aca_put(aca); |