On Wed, Feb 3, 2021 at 7:08 PM Andreas Gruenbacher <[email protected]> wrote:
> In gfs2_log_flush, we're going through all active transactions.  For
> each of the buffers in those transactions that has completed, we either
> add a revoke to the active transaction immediately or we move the
> buffer to the transaction's ail2 list, which may result in a revoke
> later.
>
> However, whenever a transaction at the tail of the log completes, the
> current tail of the log advances.  gfs2_log_flush writes out the log
> header for the system transaction, with lh_tail set to that current tail
> (sd_log_flush_head).  This implicitly revokes all previous blocks in the
> log, so the revokes we've just written become obsolete.
>
> So instead of writing unnecessary revokes, just skip completed
> transactions at the tail of the log.

This patch is still causing problems during testing, so we'll put it
aside for now and fix it later.

Thanks,
Andreas

Reply via email to