Messages in this thread Patch in this message |  | | Date | Mon, 18 Sep 2000 19:16:44 +0200 (CEST) | Subject | [PATCH 2.4.0-pre8] Fix RPC over TCP hangs... | From | Trond Myklebust <> |
| |
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 majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |