diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-03-07 16:39:06 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-03-07 17:11:19 -0500 |
commit | 3114ea7a24d3264c090556a2444fc6d2c06176d4 (patch) | |
tree | 50b8f1f3f43c6eb93093abec368c070e2efdc7d2 /fs/nfs/nfs4_fs.h | |
parent | cf470c3e004efe16d73dc8ba9b29bdc9a5327cda (diff) |
NFSv4: Return the delegation if the server returns NFS4ERR_OPENMODE
If a setattr() fails because of an NFS4ERR_OPENMODE error, it is
probably due to us holding a read delegation. Ensure that the
recovery routines return that delegation in this case.
Reported-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: stable@vger.kernel.org
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 026878cb2698..d1989e3f23c3 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h | |||
@@ -182,6 +182,7 @@ struct nfs4_exception { | |||
182 | long timeout; | 182 | long timeout; |
183 | int retry; | 183 | int retry; |
184 | struct nfs4_state *state; | 184 | struct nfs4_state *state; |
185 | struct inode *inode; | ||
185 | }; | 186 | }; |
186 | 187 | ||
187 | struct nfs4_state_recovery_ops { | 188 | struct nfs4_state_recovery_ops { |