summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/inet/tcp.h
diff options
context:
space:
mode:
authormeem <none@none>2006-08-20 10:20:53 -0700
committermeem <none@none>2006-08-20 10:20:53 -0700
commita2036d4dec789d6fcf6f71ae43cc38d40c4786cc (patch)
tree78cee26f1c36d603dbc2292d88c42209af3a2042 /usr/src/uts/common/inet/tcp.h
parent70ab954a5d6c4d36858fd6e7e3dd4498d06d2c40 (diff)
downloadillumos-joyent-a2036d4dec789d6fcf6f71ae43cc38d40c4786cc.tar.gz
6440123 TCP Fusion loopback connections may hang due to flow control logic error
6458410 read() may spuriously return EAGAIN while unfusing a TCP connection
Diffstat (limited to 'usr/src/uts/common/inet/tcp.h')
-rw-r--r--usr/src/uts/common/inet/tcp.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/usr/src/uts/common/inet/tcp.h b/usr/src/uts/common/inet/tcp.h
index 7ed4f35564..ebf0084e18 100644
--- a/usr/src/uts/common/inet/tcp.h
+++ b/usr/src/uts/common/inet/tcp.h
@@ -525,6 +525,7 @@ typedef struct tcp_s {
* manipulated with squeue protection or with tcp_fuse_lock held.
*/
kmutex_t tcp_fuse_lock;
+ kcondvar_t tcp_fuse_plugcv;
uint_t tcp_fuse_rcv_unread_cnt; /* # of outstanding pkts */
uint32_t
tcp_fused : 1, /* loopback tcp in fusion mode */
@@ -533,7 +534,8 @@ typedef struct tcp_s {
tcp_direct_sockfs : 1, /* direct calls to sockfs */
tcp_fuse_syncstr_stopped : 1, /* synchronous streams stopped */
- tcp_fuse_to_bit_31 : 27;
+ tcp_fuse_syncstr_plugged : 1, /* synchronous streams plugged */
+ tcp_fuse_to_bit_31 : 26;
/*
* This variable is accessed without any lock protection