summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/inet/tcp/tcp_fusion.c
diff options
context:
space:
mode:
authorAnders Persson <Anders.Persson@Sun.COM>2010-06-17 17:22:09 -0700
committerAnders Persson <Anders.Persson@Sun.COM>2010-06-17 17:22:09 -0700
commit3e95bd4ab92abca814bd28e854607d1975c7dc88 (patch)
tree9f3088b26f62207198f0d44feca65b701fafb8dc /usr/src/uts/common/inet/tcp/tcp_fusion.c
parent8e51227711fb29b69b8f42a3953e759963432065 (diff)
downloadillumos-gate-3e95bd4ab92abca814bd28e854607d1975c7dc88.tar.gz
PSARC/2009/590 Socket Filter Framework
6939085 Socket Filter Framework 6802067 connect_failed kernel socket callback is not triggered 6776450 time spent in tcp_close could be reduced/deferred to a worker thread 6828586 assertion failed: family == 26, file: ../../common/fs/sockfs/socksyscalls.c, line: 1608 6802078 kernel socket 'newconn' callback is passing rcv queue size as an argument
Diffstat (limited to 'usr/src/uts/common/inet/tcp/tcp_fusion.c')
-rw-r--r--usr/src/uts/common/inet/tcp/tcp_fusion.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr/src/uts/common/inet/tcp/tcp_fusion.c b/usr/src/uts/common/inet/tcp/tcp_fusion.c
index c8f50cee8f..81640b8329 100644
--- a/usr/src/uts/common/inet/tcp/tcp_fusion.c
+++ b/usr/src/uts/common/inet/tcp/tcp_fusion.c
@@ -233,8 +233,9 @@ tcp_fuse(tcp_t *tcp, uchar_t *iphdr, tcpha_t *tcpha)
mp->b_wptr += sizeof (*stropt);
stropt = (struct stroptions *)mp->b_rptr;
- stropt->so_flags = SO_WROFF;
+ stropt->so_flags = SO_WROFF | SO_MAXBLK;
stropt->so_wroff = 0;
+ stropt->so_maxblk = INFPSZ;
/* Send the options up */
putnext(peer_rq, mp);
@@ -244,8 +245,9 @@ tcp_fuse(tcp_t *tcp, uchar_t *iphdr, tcpha_t *tcpha)
/* The peer is a non-STREAMS end point */
ASSERT(IPCL_IS_TCP(peer_connp));
- sopp.sopp_flags = SOCKOPT_WROFF;
+ sopp.sopp_flags = SOCKOPT_WROFF | SOCKOPT_MAXBLK;
sopp.sopp_wroff = 0;
+ sopp.sopp_maxblk = INFPSZ;
(*peer_connp->conn_upcalls->su_set_proto_props)
(peer_connp->conn_upper_handle, &sopp);
}