NFSv4: Always drain the slot table before re-establishing the lease
authorTrond Myklebust <trond.myklebust@primarydata.com>
Mon, 1 Jun 2015 14:30:11 +0000 (10:30 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Tue, 2 Jun 2015 12:55:27 +0000 (08:55 -0400)
commit5cae02f42793130e1387f4ec09c4d07056ce9fa5
treefec2d1a284a652fe0acd964ae89408d2420c269a
parente8d975e73e5fa05f983fbf2723120edcf68e0b38
NFSv4: Always drain the slot table before re-establishing the lease

While the NFSv4.1 code has always drained the slot tables in order to stop
non-recovery related RPC calls when doing lease recovery, the NFSv4 code
did not.
The reason for the difference in behaviour is that NFSv4 does not have
session state, and so RPC calls can in theory proceed while recovery is
happening. In practice, however, anything I/O or state related needs to
wait until recovery is over.

This patch changes the behaviour of NFSv4 to match that of NFSv4.1 so that
we can simplify the state recovery code by assuming that we do not have to
deal with races between recovery and ordinary I/O.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/nfs4state.c