SUNRPC: Clean up
Replace remaining callers of call_timeout() with rpc_check_timeout(). Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
7b3fef8e41
commit
cea57789e4
@ -70,7 +70,6 @@ static void call_status(struct rpc_task *task);
|
|||||||
static void call_transmit_status(struct rpc_task *task);
|
static void call_transmit_status(struct rpc_task *task);
|
||||||
static void call_refresh(struct rpc_task *task);
|
static void call_refresh(struct rpc_task *task);
|
||||||
static void call_refreshresult(struct rpc_task *task);
|
static void call_refreshresult(struct rpc_task *task);
|
||||||
static void call_timeout(struct rpc_task *task);
|
|
||||||
static void call_connect(struct rpc_task *task);
|
static void call_connect(struct rpc_task *task);
|
||||||
static void call_connect_status(struct rpc_task *task);
|
static void call_connect_status(struct rpc_task *task);
|
||||||
|
|
||||||
@ -1908,7 +1907,8 @@ call_bind_status(struct rpc_task *task)
|
|||||||
|
|
||||||
retry_timeout:
|
retry_timeout:
|
||||||
task->tk_status = 0;
|
task->tk_status = 0;
|
||||||
task->tk_action = call_timeout;
|
task->tk_action = call_encode;
|
||||||
|
rpc_check_timeout(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2197,10 +2197,8 @@ call_status(struct rpc_task *task)
|
|||||||
case -EHOSTUNREACH:
|
case -EHOSTUNREACH:
|
||||||
case -ENETUNREACH:
|
case -ENETUNREACH:
|
||||||
case -EPERM:
|
case -EPERM:
|
||||||
if (RPC_IS_SOFTCONN(task)) {
|
if (RPC_IS_SOFTCONN(task))
|
||||||
rpc_exit(task, status);
|
goto out_exit;
|
||||||
break;
|
|
||||||
}
|
|
||||||
/*
|
/*
|
||||||
* Delay any retries for 3 seconds, then handle as if it
|
* Delay any retries for 3 seconds, then handle as if it
|
||||||
* were a timeout.
|
* were a timeout.
|
||||||
@ -2208,7 +2206,6 @@ call_status(struct rpc_task *task)
|
|||||||
rpc_delay(task, 3*HZ);
|
rpc_delay(task, 3*HZ);
|
||||||
/* fall through */
|
/* fall through */
|
||||||
case -ETIMEDOUT:
|
case -ETIMEDOUT:
|
||||||
task->tk_action = call_timeout;
|
|
||||||
break;
|
break;
|
||||||
case -ECONNREFUSED:
|
case -ECONNREFUSED:
|
||||||
case -ECONNRESET:
|
case -ECONNRESET:
|
||||||
@ -2221,18 +2218,21 @@ call_status(struct rpc_task *task)
|
|||||||
case -EPIPE:
|
case -EPIPE:
|
||||||
case -ENOTCONN:
|
case -ENOTCONN:
|
||||||
case -EAGAIN:
|
case -EAGAIN:
|
||||||
task->tk_action = call_timeout;
|
|
||||||
break;
|
break;
|
||||||
case -EIO:
|
case -EIO:
|
||||||
/* shutdown or soft timeout */
|
/* shutdown or soft timeout */
|
||||||
rpc_exit(task, status);
|
goto out_exit;
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
if (clnt->cl_chatty)
|
if (clnt->cl_chatty)
|
||||||
printk("%s: RPC call returned error %d\n",
|
printk("%s: RPC call returned error %d\n",
|
||||||
clnt->cl_program->name, -status);
|
clnt->cl_program->name, -status);
|
||||||
rpc_exit(task, status);
|
goto out_exit;
|
||||||
}
|
}
|
||||||
|
task->tk_action = call_encode;
|
||||||
|
rpc_check_timeout(task);
|
||||||
|
return;
|
||||||
|
out_exit:
|
||||||
|
rpc_exit(task, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -2279,19 +2279,6 @@ rpc_check_timeout(struct rpc_task *task)
|
|||||||
rpcauth_invalcred(task);
|
rpcauth_invalcred(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* 6a. Handle RPC timeout
|
|
||||||
* We do not release the request slot, so we keep using the
|
|
||||||
* same XID for all retransmits.
|
|
||||||
*/
|
|
||||||
static void
|
|
||||||
call_timeout(struct rpc_task *task)
|
|
||||||
{
|
|
||||||
task->tk_action = call_encode;
|
|
||||||
task->tk_status = 0;
|
|
||||||
rpc_check_timeout(task);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 7. Decode the RPC reply
|
* 7. Decode the RPC reply
|
||||||
*/
|
*/
|
||||||
@ -2329,16 +2316,8 @@ call_decode(struct rpc_task *task)
|
|||||||
WARN_ON(memcmp(&req->rq_rcv_buf, &req->rq_private_buf,
|
WARN_ON(memcmp(&req->rq_rcv_buf, &req->rq_private_buf,
|
||||||
sizeof(req->rq_rcv_buf)) != 0);
|
sizeof(req->rq_rcv_buf)) != 0);
|
||||||
|
|
||||||
if (req->rq_rcv_buf.len < 12) {
|
if (req->rq_rcv_buf.len < 12)
|
||||||
if (!RPC_IS_SOFT(task)) {
|
|
||||||
task->tk_action = call_encode;
|
|
||||||
goto out_retry;
|
|
||||||
}
|
|
||||||
dprintk("RPC: %s: too small RPC reply size (%d bytes)\n",
|
|
||||||
clnt->cl_program->name, task->tk_status);
|
|
||||||
task->tk_action = call_timeout;
|
|
||||||
goto out_retry;
|
goto out_retry;
|
||||||
}
|
|
||||||
|
|
||||||
xdr_init_decode(&xdr, &req->rq_rcv_buf,
|
xdr_init_decode(&xdr, &req->rq_rcv_buf,
|
||||||
req->rq_rcv_buf.head[0].iov_base, req);
|
req->rq_rcv_buf.head[0].iov_base, req);
|
||||||
@ -2361,6 +2340,8 @@ out_retry:
|
|||||||
xprt_conditional_disconnect(req->rq_xprt,
|
xprt_conditional_disconnect(req->rq_xprt,
|
||||||
req->rq_connect_cookie);
|
req->rq_connect_cookie);
|
||||||
}
|
}
|
||||||
|
task->tk_action = call_encode;
|
||||||
|
rpc_check_timeout(task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user