NFS: Remove bad delegations during open recovery
authorBryan Schumaker <bjschuma@netapp.com>
Wed, 26 Sep 2012 19:25:52 +0000 (15:25 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 1 Oct 2012 22:17:25 +0000 (15:17 -0700)
commit6938867edba929a65a167a97581231e76aeb10b4
tree9f1fcee1c9dc22515d335c69db0f01e5eb9f4bb1
parentfcb6d9c6b719b633e9b98d26d8a7937209e8bf21
NFS: Remove bad delegations during open recovery

I put the client into an open recovery loop by:
Client: Open file
read half
Server: Expire client (echo 0 > /sys/kernel/debug/nfsd/forget_clients)
Client: Drop vm cache (echo 3 > /proc/sys/vm/drop_caches)
finish reading file

This causes a loop because the client never updates the nfs4_state after
discovering that the delegation is invalid.  This means it will keep
trying to read using the bad delegation rather than attempting to re-open
the file.

Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
CC: stable@vger.kernel.org [3.4+]
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4proc.c