Commit ff2d7db8 authored by Trond Myklebust's avatar Trond Myklebust
Browse files

SUNRPC: Ensure that we read all available tcp data



Don't stop until we run out of data, or we hit an error.

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent f5fb7b06
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1073,6 +1073,7 @@ static void xs_tcp_data_ready(struct sock *sk, int bytes)
{
	struct rpc_xprt *xprt;
	read_descriptor_t rd_desc;
	int read;

	dprintk("RPC:       xs_tcp_data_ready...\n");

@@ -1084,8 +1085,10 @@ static void xs_tcp_data_ready(struct sock *sk, int bytes)

	/* We use rd_desc to pass struct xprt to xs_tcp_data_recv */
	rd_desc.arg.data = xprt;
	do {
		rd_desc.count = 65536;
	tcp_read_sock(sk, &rd_desc, xs_tcp_data_recv);
		read = tcp_read_sock(sk, &rd_desc, xs_tcp_data_recv);
	} while (read > 0);
out:
	read_unlock(&sk->sk_callback_lock);
}