Author: melifaro Date: Sat May 3 16:28:54 2014 New Revision: 265279 URL: http://svnweb.freebsd.org/changeset/base/265279
Log: Pass radix head ptr along with rte to rtexpunge(). Rename rtexpunge to rt_expunge(). Modified: head/sys/net/route.c head/sys/net/route.h head/sys/netinet/in_rmx.c head/sys/netinet6/in6_ifattach.c Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Sat May 3 16:24:41 2014 (r265278) +++ head/sys/net/route.c Sat May 3 16:28:54 2014 (r265279) @@ -898,7 +898,7 @@ rt_getifa_fib(struct rt_addrinfo *info, * The route must be locked. */ int -rtexpunge(struct rtentry *rt) +rt_expunge(struct radix_node_head *rnh, struct rtentry *rt) { #if !defined(RADIX_MPATH) struct radix_node *rn; @@ -907,17 +907,10 @@ rtexpunge(struct rtentry *rt) int fib; struct rtentry *rt0; #endif - struct radix_node_head *rnh; struct ifaddr *ifa; int error = 0; - /* - * Find the correct routing tree to use for this Address Family - */ - rnh = rt_tables_get_rnh(rt->rt_fibnum, rt_key(rt)->sa_family); RT_LOCK_ASSERT(rt); - if (rnh == NULL) - return (EAFNOSUPPORT); RADIX_NODE_HEAD_LOCK_ASSERT(rnh); #ifdef RADIX_MPATH Modified: head/sys/net/route.h ============================================================================== --- head/sys/net/route.h Sat May 3 16:24:41 2014 (r265278) +++ head/sys/net/route.h Sat May 3 16:28:54 2014 (r265279) @@ -371,7 +371,7 @@ int rtsock_routemsg(int, struct ifnet *i * RTFREE() uses an unlocked entry. */ -int rtexpunge(struct rtentry *); +int rt_expunge(struct radix_node_head *, struct rtentry *); void rtfree(struct rtentry *); int rt_check(struct rtentry **, struct rtentry **, struct sockaddr *); Modified: head/sys/netinet/in_rmx.c ============================================================================== --- head/sys/netinet/in_rmx.c Sat May 3 16:24:41 2014 (r265278) +++ head/sys/netinet/in_rmx.c Sat May 3 16:28:54 2014 (r265279) @@ -169,9 +169,8 @@ in_clsroute(struct radix_node *rn, struc if (V_rtq_reallyold != 0) { rt->rt_flags |= RTPRF_OURS; rt->rt_expire = time_uptime + V_rtq_reallyold; - } else { - rtexpunge(rt); - } + } else + rt_expunge(head, rt); } struct rtqk_arg { @@ -388,6 +387,7 @@ in_detachhead(void **head, int off) * plug back in. */ struct in_ifadown_arg { + struct radix_node_head *rnh; struct ifaddr *ifa; int del; }; @@ -411,7 +411,7 @@ in_ifadownkill(struct radix_node *rn, vo * Disconnect it from the tree and permit protocols * to cleanup. */ - rtexpunge(rt); + rt_expunge(ap->rnh, rt); /* * At this point it is an rttrash node, and in case * the above is the only reference we must free it. Modified: head/sys/netinet6/in6_ifattach.c ============================================================================== --- head/sys/netinet6/in6_ifattach.c Sat May 3 16:24:41 2014 (r265278) +++ head/sys/netinet6/in6_ifattach.c Sat May 3 16:28:54 2014 (r265279) @@ -863,7 +863,7 @@ in6_ifdetach(struct ifnet *ifp) RT_DEFAULT_FIB); if (rt) { if (rt->rt_ifp == ifp) - rtexpunge(rt); + rt_expunge(rnh, rt); RTFREE_LOCKED(rt); } RADIX_NODE_HEAD_UNLOCK(rnh); _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"