• Bob Peterson's avatar
    gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty · 9ff78289
    Bob Peterson authored
    Before this patch, if gfs2_ail_empty_gl saw there was nothing on
    the ail list, it would return and not flush the log. The problem
    is that there could still be a revoke for the rgrp sitting on the
    sd_log_le_revoke list that's been recently taken off the ail list.
    But that revoke still needs to be written, and the rgrp_go_inval
    still needs to call log_flush_wait to ensure the revokes are all
    properly written to the journal before we relinquish control of
    the glock to another node. If we give the glock to another node
    before we have this knowledge, the node might crash and its journal
    replayed, in which case the missing revoke would allow the journal
    replay to replay the rgrp over top of the rgrp we already gave to
    another node, thus overwriting its changes and corrupting the
    file system.
    
    This patch makes gfs2_ail_empty_gl still call gfs2_log_flush rather
    than returning.
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    Reviewed-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    9ff78289
log.h 2.34 KB