• Sweet Tea Dorminy's avatar
    btrfs: add filesystems state details to error messages · c067da87
    Sweet Tea Dorminy authored
    When a filesystem goes read-only due to an error, multiple errors tend
    to be reported, some of which are knock-on failures. Logging fs_states,
    in btrfs_handle_fs_error() and btrfs_printk() helps distinguish the
    first error from subsequent messages which may only exist due to an
    error state.
    
    Under the new format, most initial errors will look like:
    `BTRFS: error (device loop0) in ...`
    while subsequent errors will begin with:
    `error (device loop0: state E) in ...`
    
    An initial transaction abort error will look like
    `error (device loop0: state A) in ...`
    and subsequent messages will contain
    `(device loop0: state EA) in ...`
    
    In addition to the error states we can also print other states that are
    temporary, like remounting, device replace, or indicate a global state
    that may affect functionality.
    
    Now implemented:
    
    E - filesystem error detected
    A - transaction aborted
    L - log tree errors
    
    M - remounting in progress
    R - device replace in progress
    C - data checksums not verified (mounted with ignoredatacsums)
    Signed-off-by: default avatarSweet Tea Dorminy <sweettea-kernel@dorminy.me>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    c067da87
super.c 73.8 KB