/* xs_tcp_data_ready - "data ready" callback for TCP sockets @sk: socket with data to read @bytes: how much data to read  */
static void xs_tcp_data_ready(struct sock *sk, int bytes)
/* xs_tcp_data_ready - "data ready" callback for TCP sockets @sk: socket with data to read @bytes: how much data to read  */
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");
	read_lock(&sk->sk_callback_lock);
	if (!(xprt = xprt_from_sock(sk)))
		goto out;
	if (xprt->shutdown)
		goto out;
	if (xprt->reestablish_timeout)
		xprt->reestablish_timeout = 0;
	rd_desc.arg.data = xprt;
	do {
		rd_desc.count = 65536;
		read = tcp_read_sock(sk, &rd_desc, xs_tcp_data_recv);
	} while (read > 0);
out:
	read_unlock(&sk->sk_callback_lock);
}