Currently, we grab the socket bit lock before we allow the message
to be XDR encoded. That significantly slows down the transmission
rate, since we serialise on a potentially blocking operation.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
        task->tk_action = call_status;
        if (task->tk_status < 0)
                return;
-       if (!xprt_prepare_transmit(task))
-               return;
-       task->tk_action = call_transmit_status;
        /* Encode here so that rpcsec_gss can use correct sequence number. */
        if (rpc_task_need_encode(task)) {
                rpc_xdr_encode(task);
                        return;
                }
        }
+       if (!xprt_prepare_transmit(task))
+               return;
+       task->tk_action = call_transmit_status;
        xprt_transmit(task);
        if (task->tk_status < 0)
                return;