Move up the call to xprt_request_enqueue_transmit() to call_encode() so that the queue order reflects the order in which slots were allocated. Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> --- net/sunrpc/clnt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 52494baca7bc..4f8803413499 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -1785,6 +1785,7 @@ call_encode(struct rpc_task *task) if (rpc_reply_expected(task)) xprt_request_enqueue_receive(task); set_bit(RPC_TASK_NEED_XMIT, &task->tk_runstate); + xprt_request_enqueue_transmit(task); out: task->tk_action = call_bind; } @@ -1971,7 +1972,6 @@ call_transmit(struct rpc_task *task) dprint_status(task); task->tk_action = call_transmit_status; - xprt_request_enqueue_transmit(task); if (!test_bit(RPC_TASK_NEED_XMIT, &task->tk_runstate)) return; -- 2.17.1