Date: Fri, 7 Oct 2011 18:01:34 +0000 (UTC) From: Qing Li <qingli@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r226114 - head/sys/netinet Message-ID: <201110071801.p97I1YYq021794@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: qingli Date: Fri Oct 7 18:01:34 2011 New Revision: 226114 URL: http://svn.freebsd.org/changeset/base/226114 Log: Remove the reference held on the loopback route when the interface address is being deleted. Only the last reference holder deletes the loopback route. All other delete operations just clear the IFA_RTSELF flag. PR: kern/159601 Submitted by: pluknet Reviewed by: discussed on net@ MFC after: 3 days Modified: head/sys/netinet/in.c Modified: head/sys/netinet/in.c ============================================================================== --- head/sys/netinet/in.c Fri Oct 7 16:39:03 2011 (r226113) +++ head/sys/netinet/in.c Fri Oct 7 18:01:34 2011 (r226114) @@ -1126,8 +1126,10 @@ in_scrubprefix(struct in_ifaddr *target, RT_LOCK(ia_ro.ro_rt); if (ia_ro.ro_rt->rt_refcnt <= 1) freeit = 1; - else + else if (flags & LLE_STATIC) { RT_REMREF(ia_ro.ro_rt); + target->ia_flags &= ~IFA_RTSELF; + } RTFREE_LOCKED(ia_ro.ro_rt); } if (freeit && (flags & LLE_STATIC)) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201110071801.p97I1YYq021794>