diff options
author | Robert Watson <rwatson@FreeBSD.org> | 2007-05-07 13:04:25 +0000 |
---|---|---|
committer | Robert Watson <rwatson@FreeBSD.org> | 2007-05-07 13:04:25 +0000 |
commit | 434a0d24dd0456bb0d6c7a1e2cae9041394b7382 (patch) | |
tree | d1aca6ff903cf910eb4d7870815532dc847dc956 /sys/netinet | |
parent | 61d8eede29fd6fd948e799293d4f3e61a9631dbf (diff) | |
download | src-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')
-rw-r--r-- | sys/netinet/tcp_subr.c | 2 | ||||
-rw-r--r-- | sys/netinet/tcp_timewait.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 4a5e16cc986c..049222de226c 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.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) 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) |