]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
NFSv4: Open state recovery must account for file permission changes
authorTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 22 Sep 2016 17:39:18 +0000 (13:39 -0400)
committerWilly Tarreau <w@1wt.eu>
Fri, 10 Feb 2017 10:03:29 +0000 (11:03 +0100)
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: Willy Tarreau <w@1wt.eu>
fs/nfs/nfs4state.c

index 2bdaf57c82d0fb10bd3186c16341b094664cd9e8..7d45b38aeb08c77605871a093d4f95163b7596f3 100644 (file)
@@ -1464,6 +1464,9 @@ restart:
                                        "Zeroing state\n", __func__, status);
                        case -ENOENT:
                        case -ENOMEM:
+                       case -EACCES:
+                       case -EROFS:
+                       case -EIO:
                        case -ESTALE:
                                /*
                                 * Open state on this file cannot be recovered