]> git.itanic.dy.fi Git - linux-stable/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)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 23 Feb 2017 03:50:51 +0000 (03:50 +0000)
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: Ben Hutchings <ben@decadent.org.uk>
fs/nfs/nfs4state.c

index c4c82439d60eab125bf98003a08f34cbd2713faa..c8b51f404eda0538590289c9b6bac7529d9737b9 100644 (file)
@@ -1203,6 +1203,9 @@ static int nfs4_reclaim_open_state(struct nfs4_state_owner *sp, const struct nfs
                                                __func__, status);
                        case -ENOENT:
                        case -ENOMEM:
+                       case -EACCES:
+                       case -EROFS:
+                       case -EIO:
                        case -ESTALE:
                                /*
                                 * Open state on this file cannot be recovered