diff options
| -rw-r--r-- | include/linux/sunrpc/xprt.h | 1 | ||||
| -rw-r--r-- | net/sunrpc/xprt.c | 13 | ||||
| -rw-r--r-- | net/sunrpc/xprtsock.c | 1 | 
3 files changed, 4 insertions, 11 deletions
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 8263f7aefed..04fc342d984 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h @@ -293,7 +293,6 @@ void			xprt_set_retrans_timeout_rtt(struct rpc_task *task);  void			xprt_wake_pending_tasks(struct rpc_xprt *xprt, int status);  void			xprt_wait_for_buffer_space(struct rpc_task *task, rpc_action action);  void			xprt_write_space(struct rpc_xprt *xprt); -void			xprt_update_rtt(struct rpc_task *task);  void			xprt_adjust_cwnd(struct rpc_task *task, int result);  struct rpc_rqst *	xprt_lookup_rqst(struct rpc_xprt *xprt, __be32 xid);  void			xprt_complete_rqst(struct rpc_task *task, int copied); diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index 6c9997ef386..698c6271229 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c @@ -774,12 +774,7 @@ struct rpc_rqst *xprt_lookup_rqst(struct rpc_xprt *xprt, __be32 xid)  }  EXPORT_SYMBOL_GPL(xprt_lookup_rqst); -/** - * xprt_update_rtt - update an RPC client's RTT state after receiving a reply - * @task: RPC request that recently completed - * - */ -void xprt_update_rtt(struct rpc_task *task) +static void xprt_update_rtt(struct rpc_task *task)  {  	struct rpc_rqst *req = task->tk_rqstp;  	struct rpc_rtt *rtt = task->tk_client->cl_rtt; @@ -787,12 +782,10 @@ void xprt_update_rtt(struct rpc_task *task)  	if (timer) {  		if (req->rq_ntrans == 1) -			rpc_update_rtt(rtt, timer, -					(long)jiffies - req->rq_xtime); +			rpc_update_rtt(rtt, timer, task->tk_rtt);  		rpc_set_timeo(rtt, timer, req->rq_ntrans - 1);  	}  } -EXPORT_SYMBOL_GPL(xprt_update_rtt);  /**   * xprt_complete_rqst - called when reply processing is complete @@ -811,6 +804,8 @@ void xprt_complete_rqst(struct rpc_task *task, int copied)  	xprt->stat.recvs++;  	task->tk_rtt = (long)jiffies - req->rq_xtime; +	if (xprt->ops->timer != NULL) +		xprt_update_rtt(task);  	list_del_init(&req->rq_list);  	req->rq_private_buf.len = copied; diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c index 790a8f31b0b..3d1dcdf2aef 100644 --- a/net/sunrpc/xprtsock.c +++ b/net/sunrpc/xprtsock.c @@ -844,7 +844,6 @@ static void xs_udp_data_ready(struct sock *sk, int len)  	dst_confirm(skb_dst(skb));  	xprt_adjust_cwnd(task, copied); -	xprt_update_rtt(task);  	xprt_complete_rqst(task, copied);   out_unlock:  |