diff options
| author | Andre Oppermann <andre@FreeBSD.org> | 2009-06-22 19:35:39 +0000 |
|---|---|---|
| committer | Andre Oppermann <andre@FreeBSD.org> | 2009-06-22 19:35:39 +0000 |
| commit | 0cb6db1d21000a926f838777e6e61e5233ffbbcb (patch) | |
| tree | ecc68804f34e41b45e17fe5d15eaf4d71dad70cc /sys | |
| parent | ce1b857f3373cfa7bc546e4e20a1fd234cf88a2e (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/kern/uipc_mbuf.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index a5ddd8857015..d78bee903bec 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -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); } } |
