xdr_partial_copy_from_skb(rcvbuf, xprt->tcp_copied, 
r = xdr_partial_copy_from_skb(rcvbuf, xprt->tcp_copied, 
tcp_read_request(struct rpc_xprt *xprt, skb_reader_t *desc){	struct rpc_rqst *req;	struct xdr_buf *rcvbuf;	size_t len;	/* Find and lock the request corresponding to this xid */	spin_lock(&xprt->sock_lock);	req = xprt_lookup_rqst(xprt, xprt->tcp_xid);	if (!req) {		xprt->tcp_flags &= ~XPRT_COPY_DATA;		dprintk("RPC:      XID %08x request not found!\n",				ntohl(xprt->tcp_xid));		spin_unlock(&xprt->sock_lock);		return;	}	rcvbuf = &req->rq_private_buf;	len = desc->count;	if (len > xprt->tcp_reclen - xprt->tcp_offset) {		skb_reader_t my_desc;		len = xprt->tcp_reclen - xprt->tcp_offset;		memcpy(&my_desc, desc, sizeof(my_desc));		my_desc.count = len;		xdr_partial_copy_from_skb(rcvbuf, xprt->tcp_copied,					  &my_desc, tcp_copy_data);		desc->count -= len;		desc->offset += len;	} else		xdr_partial_copy_from_skb(rcvbuf, xprt->tcp_copied,					  desc, tcp_copy_data);	xprt->tcp_copied += len;	xprt->tcp_offset += len;	if (xprt->tcp_copied == req->rq_private_buf.buflen)		xprt->tcp_flags &= ~XPRT_COPY_DATA;	else if (xprt->tcp_offset == xprt->tcp_reclen) {		if (xprt->tcp_flags & XPRT_LAST_FRAG)			xprt->tcp_flags &= ~XPRT_COPY_DATA;	}	if (!(xprt->tcp_flags & XPRT_COPY_DATA)) {		dprintk("RPC: %4d received reply complete\n",				req->rq_task->tk_pid);		xprt_complete_rqst(xprt, req, xprt->tcp_copied);	}	spin_unlock(&xprt->sock_lock);	tcp_check_recm(xprt);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e053d1ab62c8ef0eff3dd4c95448cad3c6d2fbf4/xprt.c/clean/net/sunrpc/xprt.c