Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Oct 2011 21:54:19 +0000 (UTC)
From:      Qing Li <qingli@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org
Subject:   svn commit: r226241 - stable/8/sys/net
Message-ID:  <201110102154.p9ALsJRs084465@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: qingli
Date: Mon Oct 10 21:54:19 2011
New Revision: 226241
URL: http://svn.freebsd.org/changeset/base/226241

Log:
  MFC 225163
  
  When the RADIX_MPATH kernel option is enabled, the RADIX_MPATH code tries
  to find the first route node of an ECMP chain before executing the route
  command. If the system has a default route, and the specific route argument
  to the command does not exist in the routing table, then the default route
  would be reached. The current code does not verify the reached node matches
  the given route argument, therefore erroneous removed the entry. This patch
  fixes that bug.

Modified:
  stable/8/sys/net/radix_mpath.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)

Modified: stable/8/sys/net/radix_mpath.c
==============================================================================
--- stable/8/sys/net/radix_mpath.c	Mon Oct 10 21:48:40 2011	(r226240)
+++ stable/8/sys/net/radix_mpath.c	Mon Oct 10 21:54:19 2011	(r226241)
@@ -96,10 +96,7 @@ rt_mpath_matchgate(struct rtentry *rt, s
 {
 	struct radix_node *rn;
 
-	if (!rn_mpath_next((struct radix_node *)rt))
-		return rt;
-
-	if (!gate)
+	if (!gate || !rt->rt_gateway)
 		return NULL;
 
 	/* beyond here, we use rn as the master copy */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201110102154.p9ALsJRs084465>