Skip to content
  • Bob Peterson's avatar
    gfs2: add some much needed cleanup for log flushes that fail · 462582b9
    Bob Peterson authored
    
    
    When a log flush fails due to io errors, it signals the failure but does
    not clean up after itself very well. This is because buffers are added to
    the transaction tr_buf and tr_databuf queue, but the io error causes
    gfs2_log_flush to bypass the "after_commit" functions responsible for
    dequeueing the bd elements. If the bd elements are added to the ail list
    before the error, function ail_drain takes care of dequeueing them.
    But if they haven't gotten that far, the elements are forgotten and
    make the transactions unable to be freed.
    
    This patch introduces new function trans_drain which drains the bd
    elements from the transaction so they can be freed properly.
    
    Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
    Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
    462582b9