diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-12-05 01:26:40 +0100 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-12-05 01:26:40 +0100 |
commit | 2cf10cdd486c362f983abdce00dc1127e8ab8c59 (patch) | |
tree | b7ce37b55539b38096d29e1d3f2dbd93990ad84c /fs/nfs/nfs4proc.c | |
parent | NFS: Only look at the change attribute cache state in nfs_check_verifier (diff) | |
download | linux-2cf10cdd486c362f983abdce00dc1127e8ab8c59.tar.xz linux-2cf10cdd486c362f983abdce00dc1127e8ab8c59.zip |
NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION replies to OP_SEQUENCE
In the case where SEQUENCE receives a NFS4ERR_BADSESSION or
NFS4ERR_DEADSESSION error, we just want to report the session as needing
recovery, and then we want to retry the operation.
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to '')
-rw-r--r-- | fs/nfs/nfs4proc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index f992281c9b29..4fd0e2b7b08e 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -816,6 +816,10 @@ static int nfs41_sequence_process(struct rpc_task *task, case -NFS4ERR_SEQ_FALSE_RETRY: ++slot->seq_nr; goto retry_nowait; + case -NFS4ERR_DEADSESSION: + case -NFS4ERR_BADSESSION: + nfs4_schedule_session_recovery(session, res->sr_status); + goto retry_nowait; default: /* Just update the slot sequence no. */ slot->seq_done = 1; |