• Josef Bacik's avatar
    Btrfs: fix transid verify errors when recovering log tree · 60e7cd3a
    Josef Bacik authored
    If we crash with a log, remount and recover that log, and then crash before we
    can commit another transaction we will get transid verify errors on the next
    mount.  This is because we were not zero'ing out the log when we committed the
    transaction after recovery.  This is ok as long as we commit another transaction
    at some point in the future, but if you abort or something else goes wrong you
    can end up in this weird state because the recovery stuff says that the tree log
    should have a generation+1 of the super generation, which won't be the case of
    the transaction that was started for recovery.  Fix this by removing the check
    and _always_ zero out the log portion of the super when we commit a transaction.
    This fixes the transid verify issues I was seeing with my force errors tests.
    Thanks,
    Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
    60e7cd3a
transaction.c 53.2 KB