summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2016-09-22 13:39:18 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-10-28 03:45:25 -0400
commita86b85c2b6b878b6806a1c0656a2bc680b41845f (patch)
tree267131804e48c8b8d513d6961d529db36aaae1f4
parentb9ab7db437b6d94b5e706ce9b33a82256bb66186 (diff)
downloadlwn-a86b85c2b6b878b6806a1c0656a2bc680b41845f.tar.gz
lwn-a86b85c2b6b878b6806a1c0656a2bc680b41845f.zip
NFSv4: Open state recovery must account for file permission changes
commit 304020fe48c6c7fff8b5a38f382b54404f0f79d3 upstream. If the file permissions change on the server, then we may not be able to recover open state. If so, we need to ensure that we mark the file descriptor appropriately. Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> Tested-by: Oleg Drokin <green@linuxhacker.ru> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--fs/nfs/nfs4state.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index cada00aa5096..8353f33f0466 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1498,6 +1498,9 @@ restart:
__func__, status);
case -ENOENT:
case -ENOMEM:
+ case -EACCES:
+ case -EROFS:
+ case -EIO:
case -ESTALE:
/* Open state on this file cannot be recovered */
nfs4_state_mark_recovery_failed(state, status);