SUNRPC: Minor cleanup for call_transmit()

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
Trond Myklebust 2018-08-28 09:20:10 -04:00
parent 7f3a1d1e18
commit 78b576ced2
1 changed files with 15 additions and 17 deletions

View File

@ -1946,9 +1946,7 @@ call_transmit(struct rpc_task *task)
dprint_status(task);
task->tk_action = call_status;
if (task->tk_status < 0)
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);
@ -1969,7 +1967,6 @@ call_transmit(struct rpc_task *task)
if (!xprt_prepare_transmit(task))
return;
task->tk_action = call_transmit_status;
xprt_transmit(task);
if (task->tk_status < 0)
return;
@ -1996,19 +1993,29 @@ call_transmit_status(struct rpc_task *task)
}
switch (task->tk_status) {
case -EAGAIN:
case -ENOBUFS:
break;
default:
dprint_status(task);
xprt_end_transmit(task);
break;
case -EBADMSG:
clear_bit(RPC_TASK_NEED_XMIT, &task->tk_runstate);
task->tk_action = call_transmit;
task->tk_status = 0;
xprt_end_transmit(task);
break;
/*
* Special cases: if we've been waiting on the
* socket's write_space() callback, or if the
* socket just returned a connection error,
* then hold onto the transport lock.
*/
case -ENOBUFS:
rpc_delay(task, HZ>>2);
/* fall through */
case -EAGAIN:
task->tk_action = call_transmit;
task->tk_status = 0;
break;
case -ECONNREFUSED:
case -EHOSTDOWN:
case -ENETDOWN:
@ -2163,22 +2170,13 @@ call_status(struct rpc_task *task)
/* fall through */
case -EPIPE:
case -ENOTCONN:
task->tk_action = call_bind;
break;
case -ENOBUFS:
rpc_delay(task, HZ>>2);
/* fall through */
case -EAGAIN:
task->tk_action = call_transmit;
task->tk_action = call_bind;
break;
case -EIO:
/* shutdown or soft timeout */
rpc_exit(task, status);
break;
case -EBADMSG:
clear_bit(RPC_TASK_NEED_XMIT, &task->tk_runstate);
task->tk_action = call_transmit;
break;
default:
if (clnt->cl_chatty)
printk("%s: RPC call returned error %d\n",