]> git.karo-electronics.de Git - karo-tx-linux.git/commit
NFS: Properly handle the case where the delegation is revoked
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 6 Mar 2012 00:56:44 +0000 (19:56 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Apr 2012 16:52:49 +0000 (09:52 -0700)
commit7be1e5fdc0b3932ab0882820f69e27769bfd9d70
treec01cffaac2ececdde9fdb6ffb0206834a13292e6
parentc401f604a75970a1e5c2718232b3c4c2060a3ee8
NFS: Properly handle the case where the delegation is revoked

commit a1d0b5eebc4fd6e0edb02688b35f17f67f42aea5 upstream.

If we know that the delegation stateid is bad or revoked, we need to
remove that delegation as soon as possible, and then mark all the
stateids that relied on that delegation for recovery. We cannot use
the delegation as part of the recovery process.

Also note that NFSv4.1 uses a different error code (NFS4ERR_DELEG_REVOKED)
to indicate that the delegation was revoked.

Finally, ensure that setlk() and setattr() can both recover safely from
a revoked delegation.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfs/delegation.c
fs/nfs/delegation.h
fs/nfs/nfs4_fs.h
fs/nfs/nfs4proc.c
fs/nfs/nfs4state.c