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"

Reply via email to