summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_reass.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2003-10-28 05:47:40 +0000
committersam <sam@FreeBSD.org>2003-10-28 05:47:40 +0000
commit39ba2e1c90c5d5fc0d01568719c540b15001528d (patch)
treeec5f03665816c252b1006ac692945285f1783b9b /sys/netinet/tcp_reass.c
parenta68a195ad4d4f0bbdd17a20f3ce13c36224a00d7 (diff)
downloadFreeBSD-src-39ba2e1c90c5d5fc0d01568719c540b15001528d.zip
FreeBSD-src-39ba2e1c90c5d5fc0d01568719c540b15001528d.tar.gz
speedup stream socket recv handling by tracking the tail of
the mbuf chain instead of walking the list for each append Submitted by: ps/jayanth Obtained from: netbsd (jason thorpe)
Diffstat (limited to 'sys/netinet/tcp_reass.c')
-rw-r--r--sys/netinet/tcp_reass.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/netinet/tcp_reass.c b/sys/netinet/tcp_reass.c
index 4d0beb2..21d530f 100644
--- a/sys/netinet/tcp_reass.c
+++ b/sys/netinet/tcp_reass.c
@@ -296,7 +296,7 @@ present:
if (so->so_state & SS_CANTRCVMORE)
m_freem(q->tqe_m);
else
- sbappend(&so->so_rcv, q->tqe_m);
+ sbappendstream(&so->so_rcv, q->tqe_m);
FREE(q, M_TSEGQ);
q = nq;
} while (q && q->tqe_th->th_seq == tp->rcv_nxt);
@@ -1124,7 +1124,7 @@ after_listen:
m_freem(m);
} else {
m_adj(m, drop_hdrlen); /* delayed header drop */
- sbappend(&so->so_rcv, m);
+ sbappendstream(&so->so_rcv, m);
}
sorwakeup(so);
if (DELAY_ACK(tp)) {
@@ -2178,7 +2178,7 @@ dodata: /* XXX */
if (so->so_state & SS_CANTRCVMORE)
m_freem(m);
else
- sbappend(&so->so_rcv, m);
+ sbappendstream(&so->so_rcv, m);
sorwakeup(so);
} else {
thflags = tcp_reass(tp, th, &tlen, m);
OpenPOWER on IntegriCloud