diff options
author | jinmei <jinmei@FreeBSD.org> | 2007-06-02 07:27:02 +0000 |
---|---|---|
committer | jinmei <jinmei@FreeBSD.org> | 2007-06-02 07:27:02 +0000 |
commit | ac701ac964be6305982bbc81a67581b4fc708ec2 (patch) | |
tree | 465ad5a0d407da6b6b9e3b50df7bee6f218da354 /sys/netinet6/in6.c | |
parent | 0f2163d639358bf9bfdc94dd2db4d63992ede7b6 (diff) | |
download | FreeBSD-src-ac701ac964be6305982bbc81a67581b4fc708ec2.zip FreeBSD-src-ac701ac964be6305982bbc81a67581b4fc708ec2.tar.gz |
simplified the fix in rev. 1.69 by replacing RT_REMREF+RT_UNLOCK with
RTFREE_LOCKED.
Approved by: gnn (mentor)
Diffstat (limited to 'sys/netinet6/in6.c')
-rw-r--r-- | sys/netinet6/in6.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index 81ef6fb..bf3f3e7 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -215,10 +215,8 @@ in6_ifaddloop(struct ifaddr *ifa) rt = rtalloc1(ifa->ifa_addr, 0, 0); need_loop = (rt == NULL || (rt->rt_flags & RTF_HOST) == 0 || (rt->rt_ifp->if_flags & IFF_LOOPBACK) == 0); - if (rt) { - RT_REMREF(rt); - RT_UNLOCK(rt); - } + if (rt) + RTFREE_LOCKED(rt); if (need_loop) in6_ifloop_request(RTM_ADD, ifa); } @@ -270,8 +268,7 @@ in6_ifremloop(struct ifaddr *ifa) if (rt != NULL) { if ((rt->rt_flags & RTF_HOST) != 0 && (rt->rt_ifp->if_flags & IFF_LOOPBACK) != 0) { - RT_REMREF(rt); - RT_UNLOCK(rt); + RTFREE_LOCKED(rt); in6_ifloop_request(RTM_DELETE, ifa); } else RT_UNLOCK(rt); |