diff options
author | darrenr <darrenr@FreeBSD.org> | 2002-09-19 01:21:24 +0000 |
---|---|---|
committer | darrenr <darrenr@FreeBSD.org> | 2002-09-19 01:21:24 +0000 |
commit | 26b0ff18e61984b14bcc7ed2d6c9dbb27d612146 (patch) | |
tree | cb300622cfed198abf4556cd856873aa8e07f7ac /sys/kern/uipc_mbuf.c | |
parent | d5e93c10eca27dbd37dc5d11dfdc49ea9aa2c54d (diff) | |
download | FreeBSD-src-26b0ff18e61984b14bcc7ed2d6c9dbb27d612146.zip FreeBSD-src-26b0ff18e61984b14bcc7ed2d6c9dbb27d612146.tar.gz |
If M_PKTHDR is set then we don't need to do a loop to find the total length.
Diffstat (limited to 'sys/kern/uipc_mbuf.c')
-rw-r--r-- | sys/kern/uipc_mbuf.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index cad6d3e..b4bbad0 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -727,6 +727,9 @@ m_length(struct mbuf *m0, struct mbuf **last) struct mbuf *m; u_int len; + if ((m0->m_flags & M_PKTHDR) != 0) + return m->m_pkthdr.len; + len = 0; for (m = m0; m != NULL; m = m->m_next) { len += m->m_len; |