[IPV6]: Fix refcounting for anycast dst entries.
authorDenis V. Lunev <den@openvz.org>
Thu, 3 Apr 2008 20:33:00 +0000 (13:33 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Apr 2008 20:33:00 +0000 (13:33 -0700)
commit84f59370c519449c70dcc813b050f5cbbf0098e7
tree247917a098519394b08c52334d6eacc949f10848
parenteb867579311a9c1e998d6911af056772c400122a
[IPV6]: Fix refcounting for anycast dst entries.

Anycast DST entries allocated inside ipv6_dev_ac_inc are leaked when
network device is stopped without removing IPv6 addresses from it. The
bug has been observed in the reality on 2.6.18-rhel5 kernel.

In the above case addrconf_ifdown marks all entries as obsolete and
ip6_del_rt called from __ipv6_dev_ac_dec returns ENOENT. The
referrence is not dropped.

The fix is simple. DST entry should not keep referrence when stored in
the FIB6 tree.

Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/anycast.c