Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Jun 2009 19:35:39 +0000 (UTC)
From:      Andre Oppermann <andre@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r194643 - head/sys/kern
Message-ID:  <200906221935.n5MJZdLJ050266@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: andre
Date: Mon Jun 22 19:35:39 2009
New Revision: 194643
URL: http://svn.freebsd.org/changeset/base/194643

Log:
  Update m_demote:
  - remove HT_HEADER test (MT_HEADER == MT_DATA for some time now)
  - be more pedantic about m_nextpkt in other than first mbuf
  - update m_flags to be retained

Modified:
  head/sys/kern/uipc_mbuf.c

Modified: head/sys/kern/uipc_mbuf.c
==============================================================================
--- head/sys/kern/uipc_mbuf.c	Mon Jun 22 19:09:48 2009	(r194642)
+++ head/sys/kern/uipc_mbuf.c	Mon Jun 22 19:35:39 2009	(r194643)
@@ -320,11 +320,13 @@ m_demote(struct mbuf *m0, int all)
 			m->m_flags &= ~M_PKTHDR;
 			bzero(&m->m_pkthdr, sizeof(struct pkthdr));
 		}
-		if (m->m_type == MT_HEADER)
-			m->m_type = MT_DATA;
-		if (m != m0 && m->m_nextpkt != NULL)
+		if (m != m0 && m->m_nextpkt != NULL) {
+			KASSERT(m->m_nextpkt == NULL,
+			    ("%s: m_nextpkt not NULL", __func__));
+			m_freem(m->m_nextpkt);
 			m->m_nextpkt = NULL;
-		m->m_flags = m->m_flags & (M_EXT|M_EOR|M_RDONLY|M_FREELIST);
+		}
+		m->m_flags = m->m_flags & (M_EXT|M_RDONLY|M_FREELIST|M_NOFREE);
 	}
 }
 



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