• Bob Peterson's avatar
    gfs2: Introduce concept of a pending withdraw · 69511080
    Bob Peterson authored
    File system withdraws can be delayed when inconsistencies are
    discovered when we cannot withdraw immediately, for example, when
    critical spin_locks are held. But delaying the withdraw can cause
    gfs2 to ignore the error and keep running for a short period of time.
    For example, an rgrp glock may be dequeued and demoted while there
    are still buffers that haven't been properly revoked, due to io
    errors writing to the journal.
    
    This patch introduces a new concept of a pending withdraw, which
    means an inconsistency has been discovered and we need to withdraw
    at the earliest possible opportunity. In these cases, we aren't
    quite withdrawn yet, but we still need to not dequeue glocks and
    other critical things. If we dequeue the glocks and the withdraw
    results in our journal being replayed, the replay could overwrite
    data that's been modified by a different node that acquired the
    glock in the meantime.
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    Reviewed-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    69511080
util.c 6.75 KB