aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_timewait.c
diff options
context:
space:
mode:
authorRobert Watson <rwatson@FreeBSD.org>2007-05-07 13:04:25 +0000
committerRobert Watson <rwatson@FreeBSD.org>2007-05-07 13:04:25 +0000
commit434a0d24dd0456bb0d6c7a1e2cae9041394b7382 (patch)
treed1aca6ff903cf910eb4d7870815532dc847dc956 /sys/netinet/tcp_timewait.c
parent61d8eede29fd6fd948e799293d4f3e61a9631dbf (diff)
downloadsrc-434a0d24dd0456bb0d6c7a1e2cae9041394b7382.tar.gz
src-434a0d24dd0456bb0d6c7a1e2cae9041394b7382.zip
When setting up timewait state for a TCP connection, don't hold the
socket lock over a crhold() of so_cred: so_cred is constant after socket creation, so doesn't require locking to read.
Notes
Notes: svn path=/head/; revision=169347
Diffstat (limited to 'sys/netinet/tcp_timewait.c')
-rw-r--r--sys/netinet/tcp_timewait.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet/tcp_timewait.c b/sys/netinet/tcp_timewait.c
index 4a5e16cc986c..049222de226c 100644
--- a/sys/netinet/tcp_timewait.c
+++ b/sys/netinet/tcp_timewait.c
@@ -1811,8 +1811,8 @@ tcp_twstart(struct tcpcb *tp)
tcp_discardcb(tp);
so = inp->inp_socket;
soisdisconnected(so);
- SOCK_LOCK(so);
tw->tw_cred = crhold(so->so_cred);
+ SOCK_LOCK(so);
tw->tw_so_options = so->so_options;
SOCK_UNLOCK(so);
if (acknow)