• Trond Myklebust's avatar
    NFSv4.1: Don't lose locks when a server reboots during delegation return · d25be546
    Trond Myklebust authored
    If the server reboots while we are converting a delegation into
    OPEN/LOCK stateids as part of a delegation return, the current code
    will simply exit with an error. This causes us to lose both
    delegation state and locking state (i.e. locking atomicity).
    
    Deal with this by exposing the delegation stateid during delegation
    return, so that we can recover the delegation, and then resume
    open/lock recovery.
    
    Note that not having to hold the nfs_inode->rwsem across the
    calls to nfs_delegation_claim_opens() also fixes a deadlock against
    the NFSv4.1 reboot recovery code.
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    d25be546
delegation.c 20 KB