/* Finds the request corresponding to the RPC xid and invokes the common tcp read code to read the data.  */
static int xs_tcp_read_reply(struct rpc_xprt *xprt, struct xdr_skb_reader *desc)
/* Finds the request corresponding to the RPC xid and invokes the common tcp read code to read the data.  */
static int xs_tcp_read_reply(struct rpc_xprt *xprt, struct xdr_skb_reader *desc)
{
	struct sock_xprt *transport =
				container_of(xprt, struct sock_xprt, xprt);
	struct rpc_rqst *req;
	dprintk("RPC:       read reply XID %08x\n", ntohl(transport->tcp_xid));
	spin_lock(&xprt->transport_lock);
	req = xprt_lookup_rqst(xprt, transport->tcp_xid);
	if (!req) {
		dprintk("RPC:       XID %08x request not found!\n",
				ntohl(transport->tcp_xid));
		spin_unlock(&xprt->transport_lock);
		return -1;
	}
	xs_tcp_read_common(xprt, desc, req);
	if (!(transport->tcp_flags & TCP_RCV_COPY_DATA))
		xprt_complete_rqst(req->rq_task, transport->tcp_copied);
	spin_unlock(&xprt->transport_lock);
	return 0;
}