Commit 76e8a1bd authored by Trond Myklebust's avatar Trond Myklebust Committed by Anna Schumaker

NFSv4: Fix retry issues with nfs41_test/free_stateid

_nfs41_free_stateid() needs to be cached by the session, but
nfs41_test_stateid() may return NFS4ERR_RETRY_UNCACHED_REP (in which
case we should just retry).
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
Tested-by: default avatarOleg Drokin <green@linuxhacker.ru>
Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
parent 304020fe
...@@ -8929,6 +8929,7 @@ static void nfs4_handle_delay_or_session_error(struct nfs_server *server, ...@@ -8929,6 +8929,7 @@ static void nfs4_handle_delay_or_session_error(struct nfs_server *server,
exception->retry = 0; exception->retry = 0;
switch(err) { switch(err) {
case -NFS4ERR_DELAY: case -NFS4ERR_DELAY:
case -NFS4ERR_RETRY_UNCACHED_REP:
nfs4_handle_exception(server, err, exception); nfs4_handle_exception(server, err, exception);
break; break;
case -NFS4ERR_BADSESSION: case -NFS4ERR_BADSESSION:
...@@ -9034,7 +9035,7 @@ static struct rpc_task *_nfs41_free_stateid(struct nfs_server *server, ...@@ -9034,7 +9035,7 @@ static struct rpc_task *_nfs41_free_stateid(struct nfs_server *server,
msg.rpc_argp = &data->args; msg.rpc_argp = &data->args;
msg.rpc_resp = &data->res; msg.rpc_resp = &data->res;
nfs4_init_sequence(&data->args.seq_args, &data->res.seq_res, 0); nfs4_init_sequence(&data->args.seq_args, &data->res.seq_res, 1);
if (privileged) if (privileged)
nfs4_set_sequence_privileged(&data->args.seq_args); nfs4_set_sequence_privileged(&data->args.seq_args);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment