Hi Linus, It seems that the TCP code has morphed again, breaking the RPC over tcp write_space() calls. Basically it seems that the current version of the tcp code no longer allows us to specify that we'd like to wait until a specific number of bytes are free in the buffer (udp is unchanged). The following patch allows us to work with the current TCP write_space() API by instead reenabling the sending of partial requests. Cheers, Trond --- linux/net/sunrpc/xprt.c.orig Tue Jul 18 21:39:29 2000 +++ linux/net/sunrpc/xprt.c Wed Sep 6 17:11:03 2000 @@ -1037,7 +1037,7 @@ return; /* Wait until we have enough socket memory */ - if (sock_wspace(sk) < min(sk->sndbuf,XPRT_MIN_WRITE_SPACE)) + if (!sock_writeable(sk)) return; spin_lock_bh(&xprt_sock_lock); @@ -1212,9 +1212,6 @@ */ while (1) { xprt->write_space = 0; - status = -ENOMEM; - if (sock_wspace(xprt->inet) < req->rq_slen + SOCK_MIN_WRITE_SPACE) - break; status = xprt_sendmsg(xprt, req); if (status < 0) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] Please read the FAQ at http://www.tux.org/lkml/