diff options
| author | Robert Watson <rwatson@FreeBSD.org> | 2004-06-24 03:07:27 +0000 |
|---|---|---|
| committer | Robert Watson <rwatson@FreeBSD.org> | 2004-06-24 03:07:27 +0000 |
| commit | 5905999b2ff81ac46c100dc9d41cf91c0aa71b04 (patch) | |
| tree | f76180abe171351107cd600b668a7f9d290de65d /sys/netinet/tcp_input.c | |
| parent | 927c5cea3f67b47cda445901fde585f1bd7fbdb7 (diff) | |
Notes
Diffstat (limited to 'sys/netinet/tcp_input.c')
| -rw-r--r-- | sys/netinet/tcp_input.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c index ef1d02cd3a72..bc28ab1be572 100644 --- a/sys/netinet/tcp_input.c +++ b/sys/netinet/tcp_input.c @@ -2143,15 +2143,17 @@ process_ACK: incr = incr * incr / cw; tp->snd_cwnd = min(cw+incr, TCP_MAXWIN<<tp->snd_scale); } + SOCKBUF_LOCK(&so->so_snd); if (acked > so->so_snd.sb_cc) { tp->snd_wnd -= so->so_snd.sb_cc; - sbdrop(&so->so_snd, (int)so->so_snd.sb_cc); + sbdrop_locked(&so->so_snd, (int)so->so_snd.sb_cc); ourfinisacked = 1; } else { - sbdrop(&so->so_snd, acked); + sbdrop_locked(&so->so_snd, acked); tp->snd_wnd -= acked; ourfinisacked = 0; } + SOCKBUF_UNLOCK(&so->so_snd); sowwakeup(so); /* detect una wraparound */ if ((tcp_do_newreno || tp->sack_enable) && |
