IPv6: keep route for tentative address

Recent changes preserve IPv6 address when link goes down (good).
But would cause address to point to dead dst entry (bad).
The simplest fix is to just not delete route if address is
being held for later use.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
stephen hemminger 2010-04-12 05:41:31 +00:00 committed by David S. Miller
parent 3941f1885b
commit 93fa159abe
1 changed files with 2 additions and 1 deletions

View File

@ -4047,7 +4047,8 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
addrconf_leave_anycast(ifp); addrconf_leave_anycast(ifp);
addrconf_leave_solict(ifp->idev, &ifp->addr); addrconf_leave_solict(ifp->idev, &ifp->addr);
dst_hold(&ifp->rt->u.dst); dst_hold(&ifp->rt->u.dst);
if (ip6_del_rt(ifp->rt))
if (ifp->dead && ip6_del_rt(ifp->rt))
dst_free(&ifp->rt->u.dst); dst_free(&ifp->rt->u.dst);
break; break;
} }