• Brian Foster's avatar
    xfs: return start block of first bad log record during recovery · d7f37692
    Brian Foster authored
    Each log recovery pass walks from the tail block to the head block and
    processes records appropriately based on the associated log pass type.
    There are various failure conditions that can occur through this
    sequence, such as I/O errors, CRC errors, etc. Log torn write detection
    will perform CRC verification near the head of the log to detect torn
    writes and trim torn records from the log appropriately.
    
    As it is, xlog_do_recovery_pass() only returns an error code in the
    event of CRC failure, which isn't enough information to trim the head of
    the log. Update xlog_do_recovery_pass() to optionally return the start
    block of the associated record when an error occurs. This patch contains
    no functional changes.
    Signed-off-by: default avatarBrian Foster <bfoster@redhat.com>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
    
    d7f37692
xfs_log_recover.c 133 KB