diff options
author | meem <none@none> | 2006-08-20 10:20:53 -0700 |
---|---|---|
committer | meem <none@none> | 2006-08-20 10:20:53 -0700 |
commit | a2036d4dec789d6fcf6f71ae43cc38d40c4786cc (patch) | |
tree | 78cee26f1c36d603dbc2292d88c42209af3a2042 /usr/src/uts/common/inet/tcp.h | |
parent | 70ab954a5d6c4d36858fd6e7e3dd4498d06d2c40 (diff) | |
download | illumos-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.h | 4 |
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 |