• Trond Myklebust's avatar
    NFSv4: Always drain the slot table before re-establishing the lease · 5cae02f4
    Trond Myklebust authored
    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: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
    5cae02f4
nfs4state.c 63.4 KB