]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/sunrpc/xprt.c
SUNRPC: Fix read ordering problems with req->rq_private_buf.len
[linux-2.6-omap-h63xx.git] / net / sunrpc / xprt.c
index 3ba64f9f84bab63da2ec1afdad87c9e2540eebc4..5110a4ea7fdf96256308cea17aa1f1f9d94ce4b0 100644 (file)
@@ -757,9 +757,10 @@ void xprt_complete_rqst(struct rpc_task *task, int copied)
        task->tk_rtt = (long)jiffies - req->rq_xtime;
 
        list_del_init(&req->rq_list);
+       req->rq_private_buf.len = copied;
        /* Ensure all writes are done before we update req->rq_received */
        smp_wmb();
-       req->rq_received = req->rq_private_buf.len = copied;
+       req->rq_received = copied;
        rpc_wake_up_queued_task(&xprt->pending, task);
 }
 EXPORT_SYMBOL_GPL(xprt_complete_rqst);