Merge tag 'nfs-for-4.17-1' of git://git.linux-nfs.org/projects/anna/linux-nfs
[linux-block.git] / net / sunrpc / xprtsock.c
index 956e29c1438d504261f1ba4cd116c150ca74aa76..c8902f11efdd513c066f7f1b4c2c24405d8dfe5f 100644 (file)
@@ -527,6 +527,7 @@ static int xs_local_send_request(struct rpc_task *task)
        xs_pktdump("packet data:",
                        req->rq_svec->iov_base, req->rq_svec->iov_len);
 
+       req->rq_xtime = ktime_get();
        status = xs_sendpages(transport->sock, NULL, 0, xdr, req->rq_bytes_sent,
                              true, &sent);
        dprintk("RPC:       %s(%u) = %d\n",
@@ -589,6 +590,7 @@ static int xs_udp_send_request(struct rpc_task *task)
 
        if (!xprt_bound(xprt))
                return -ENOTCONN;
+       req->rq_xtime = ktime_get();
        status = xs_sendpages(transport->sock, xs_addr(xprt), xprt->addrlen,
                              xdr, req->rq_bytes_sent, true, &sent);
 
@@ -678,6 +680,7 @@ static int xs_tcp_send_request(struct rpc_task *task)
        /* Continue transmitting the packet/record. We must be careful
         * to cope with writespace callbacks arriving _after_ we have
         * called sendmsg(). */
+       req->rq_xtime = ktime_get();
        while (1) {
                sent = 0;
                status = xs_sendpages(transport->sock, NULL, 0, xdr,
@@ -1060,6 +1063,7 @@ static void xs_udp_data_read_skb(struct rpc_xprt *xprt,
        if (!rovr)
                goto out_unlock;
        xprt_pin_rqst(rovr);
+       xprt_update_rtt(rovr->rq_task);
        spin_unlock(&xprt->recv_lock);
        task = rovr->rq_task;