mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 20:58:14 -04:00
SUNRPC: SOFTCONN tasks should time out when on the sending list
SOFTCONN tasks need to periodically check if the transport is still connected, so that they can time out if that is not the case. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
@@ -283,7 +283,7 @@ int xprt_reserve_xprt(struct rpc_xprt *xprt, struct rpc_task *task)
|
|||||||
xprt_clear_locked(xprt);
|
xprt_clear_locked(xprt);
|
||||||
out_sleep:
|
out_sleep:
|
||||||
task->tk_status = -EAGAIN;
|
task->tk_status = -EAGAIN;
|
||||||
if (RPC_IS_SOFT(task))
|
if (RPC_IS_SOFT(task) || RPC_IS_SOFTCONN(task))
|
||||||
rpc_sleep_on_timeout(&xprt->sending, task, NULL,
|
rpc_sleep_on_timeout(&xprt->sending, task, NULL,
|
||||||
xprt_request_timeout(req));
|
xprt_request_timeout(req));
|
||||||
else
|
else
|
||||||
@@ -349,7 +349,7 @@ int xprt_reserve_xprt_cong(struct rpc_xprt *xprt, struct rpc_task *task)
|
|||||||
xprt_clear_locked(xprt);
|
xprt_clear_locked(xprt);
|
||||||
out_sleep:
|
out_sleep:
|
||||||
task->tk_status = -EAGAIN;
|
task->tk_status = -EAGAIN;
|
||||||
if (RPC_IS_SOFT(task))
|
if (RPC_IS_SOFT(task) || RPC_IS_SOFTCONN(task))
|
||||||
rpc_sleep_on_timeout(&xprt->sending, task, NULL,
|
rpc_sleep_on_timeout(&xprt->sending, task, NULL,
|
||||||
xprt_request_timeout(req));
|
xprt_request_timeout(req));
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user