void xprt_complete_rqst(struct rpc_xprt *xprt, struct rpc_rqst *req, int copied) 
void xprt_complete_rqst(struct rpc_task *task, int copied) 
void xprt_complete_rqst(struct rpc_xprt *xprt, struct rpc_rqst *req, int copied){	struct rpc_task	*task = req->rq_task;	struct rpc_clnt *clnt = task->tk_client;	/* Adjust congestion window */	if (!xprt->nocong) {		unsigned timer = task->tk_msg.rpc_proc->p_timer;		xprt_adjust_cwnd(task, copied);		if (timer) {			if (req->rq_ntrans == 1)				rpc_update_rtt(clnt->cl_rtt, timer,						(long)jiffies - req->rq_xtime);			rpc_set_timeo(clnt->cl_rtt, timer, req->rq_ntrans - 1);		}	}#ifdef RPC_PROFILE	/* Profile only reads for now */	if (copied > 1024) {		static unsigned long	nextstat;		static unsigned long	pkt_rtt, pkt_len, pkt_cnt;		pkt_cnt++;		pkt_len += req->rq_slen + copied;		pkt_rtt += jiffies - req->rq_xtime;		if (time_before(nextstat, jiffies)) {			printk("RPC: %lu %ld cwnd\n", jiffies, xprt->cwnd);			printk("RPC: %ld %ld %ld %ld stat\n",					jiffies, pkt_cnt, pkt_len, pkt_rtt);			pkt_rtt = pkt_len = pkt_cnt = 0;			nextstat = jiffies + 5 * HZ;		}	}#endif	dprintk("RPC: %4d has input (%d bytes)\n", task->tk_pid, copied);	list_del_init(&req->rq_list);	req->rq_received = req->rq_private_buf.len = copied;	/* ... and wake up the process. */	rpc_wake_up_task(task);	return;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1570c1e41eabf6b7031f3e4322a2cf1cbe319fee/xprt.c/buggy/net/sunrpc/xprt.c