NFS: Slow down state manager after an unhandled error
authorChuck Lever <chuck.lever@oracle.com>
Fri, 14 Sep 2012 21:23:23 +0000 (17:23 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 1 Oct 2012 22:31:51 +0000 (15:31 -0700)
commitffe5a83005b0d23575ab109755b4cb5518a5d91f
treebe0a3c83446995a129f040c3bcb7c94b806b768c
parent8cb7f74eeeb5441811d93f94b6138d4a5a9d8b20
NFS: Slow down state manager after an unhandled error

If the state manager thread is not actually able to fully recover from
some situation, it wakes up waiters, who kick off a new state manager
thread.  Quite often the fresh invocation of the state manager is just
as successful.

This results in a livelock as the client dumps thousands of NFS
requests a second on the network in a vain attempt to recover.  Not
very friendly.

To mitigate this situation, add a delay in the state manager after
an unhandled error, so that the client sends just a few requests
every second in this case.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4state.c