|
@@ -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;
|