• Andreas Gruenbacher's avatar
    gfs2: Try harder to delete inodes locally · 9e73330f
    Andreas Gruenbacher authored
    When an inode's link count drops to zero and the inode is cached on
    other nodes, the current behavior of gfs2 is to immediately give up and
    to rely on the other node(s) to delete the inode if there is iopen glock
    contention.  This leads to resource group glock bouncing and the loss of
    caching.  With the previous patches in place, we can fix that by not
    giving up immediately.
    
    When the inode is still open on other nodes, those nodes won't be able
    to evict the inode and give up the iopen glock.  In that case, our lock
    conversion request will time out.  The unlink system call will block for
    the duration of the iopen lock conversion request.  We're also holding
    the inode glock in EX mode for an extended duration, so other nodes
    won't be able to make progress on the inode, either.
    
    This is worse than what we had before, but we can prevent other nodes
    from getting stuck by aborting our iopen locking request if there is
    contention on the inode glock.  This will the the subject of a future
    patch.
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    9e73330f
super.c 37.1 KB