diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-06-26 08:44:35 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-06-30 15:29:57 -0400 |
commit | 8487c479e2668dd1231e9c3c77a203d744aec081 (patch) | |
tree | 886f0174f465e4b27d97087118dd229db0358502 /fs/nfs/nfs4_fs.h | |
parent | ca857cc1d4cf17aba4bbb3b95d35454ad96924b3 (diff) | |
download | lwn-8487c479e2668dd1231e9c3c77a203d744aec081.tar.gz lwn-8487c479e2668dd1231e9c3c77a203d744aec081.zip |
NFSv4: Allow retry of operations that used a returned delegation stateid
Fix up nfs4_do_handle_exception() so that it can check if the operation
that received the NFS4ERR_BAD_STATEID was using a defunct delegation.
Apply that to the case of SETATTR, which will currently return EIO
in some cases where this happens.
Reported-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/nfs4_fs.h')
-rw-r--r-- | fs/nfs/nfs4_fs.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index 768456fa1b17..4be567a54958 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h @@ -185,6 +185,7 @@ struct nfs4_state { struct nfs4_exception { struct nfs4_state *state; struct inode *inode; + nfs4_stateid *stateid; long timeout; unsigned char delay : 1, recovering : 1, |