Message ID | 20210221211347.3429-1-timo@rothenpieler.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | nfsd: set RPC_CLNT_CREATE_NO_IDLE_TIMEOUT on callback client | expand |
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c index 052be5bf9ef5..75dacb7878b8 100644 --- a/fs/nfsd/nfs4callback.c +++ b/fs/nfsd/nfs4callback.c @@ -897,7 +897,7 @@ static int setup_callback_client(struct nfs4_client *clp, struct nfs4_cb_conn *c .timeout = &timeparms, .program = &cb_program, .version = 1, - .flags = (RPC_CLNT_CREATE_NOPING | RPC_CLNT_CREATE_QUIET), + .flags = (RPC_CLNT_CREATE_NOPING | RPC_CLNT_CREATE_QUIET | RPC_CLNT_CREATE_NO_IDLE_TIMEOUT), .cred = current_cred(), }; struct rpc_clnt *client;
This tackles an issue where the callback client times out from inactivity, causing operations like server side copy to never return on the client side. I was observing that issue frequently on my RDMA connected clients, it does not seem to manifest on tcp connected clients. However, it does not fix the actual issue of the callback channel not getting re-established and the client being stuck in the call forever. It just makes it a lot less likely to occur, as long as no other circumstances cause the callback channel to be disconnected. Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org> --- fs/nfsd/nfs4callback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)