• Bob Peterson's avatar
    gfs2: Fix BUG during unmount after file system withdraw · 53af80ce
    Bob Peterson authored
    Before this patch, when the logd daemon was forced to withdraw, it
    would try to request its journal be recovered by another cluster node.
    However, in single-user cases with lock_nolock, there are no other
    nodes to recover the journal. Function signal_our_withdraw() was
    recognizing the lock_nolock situation, but not until after it had
    evicted its journal inode. Since the journal descriptor that points
    to the inode was never removed from the master list, when the unmount
    occurred, it did another iput on the evicted inode, which resulted in
    a BUG_ON(inode->i_state & I_CLEAR).
    
    This patch moves the check for this situation earlier in function
    signal_our_withdraw(), which avoids the extra iput, so the unmount
    may happen normally.
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    53af80ce
util.c 14.4 KB