• Trond Myklebust's avatar
    NFSv4: Fix a potential state manager deadlock when returning delegations · d18cc1fd
    Trond Myklebust authored
    The nfsv4 state manager could potentially deadlock inside
    __nfs_inode_return_delegation() if the server reboots, so that the calls to
    nfs_msync_inode() end up waiting on state recovery to complete.
    
    Also ensure that if a server reboot or network partition causes us to have
    to stop returning delegations, that NFS4CLNT_DELEGRETURN is set so that
    the state manager can resume any outstanding delegation returns after it
    has dealt with the state recovery situation.
    
    Finally, ensure that the state manager doesn't wait for the DELEGRETURN
    call to complete. It doesn't need to, and that too can cause a deadlock.
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    d18cc1fd
delegation.c 14.1 KB