• Bob Peterson's avatar
    gfs2: Clear flags when withdraw prevents xmote · 86934198
    Bob Peterson authored
    There are a couple places in function do_xmote where normal processing
    is circumvented due to withdraws in progress. However, since we bypass
    most of do_xmote() we bypass telling dlm to lock the dlm lock, which
    means dlm will never respond with a completion callback. Since the
    completion callback ordinarily clears GLF_LOCK, this patch changes
    function do_xmote to handle those situations more gracefully so the
    file system may be unmounted after withdraw.
    
    A very similar situation happens with the GLF_DEMOTE_IN_PROGRESS flag,
    which is cleared by function finish_xmote(). Since the withdraw causes
    us to skip the majority of do_xmote, it therefore also skips the call
    to finish_xmote() so the DEMOTE_IN_PROGRESS flag needs to be cleared
    manually.
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    86934198
glock.c 71.9 KB