• Kent Overstreet's avatar
    bcachefs: Enumerate recovery passes · 067d228b
    Kent Overstreet authored
    Recovery and fsck have many different passes/jobs to do, which always
    run in the same order - but not all of them run all the time. Some are
    for fsck, some for unclean shutdown, some for version upgrades.
    
    This adds some new structure: a defined list of recovery passes that we
    can run in a loop, as well as consolidating the log messages.
    
    The main benefit is consolidating the "should run this recovery pass"
    logic, as well as cleaning up the "this recovery pass has finished"
    state; instead of having a bunch of ad-hoc state bits in c->flags, we've
    now got c->curr_recovery_pass.
    
    By consolidating the "should run this recovery pass" logic, in the
    future on disk format upgrades will be able to say "upgrading to this
    version requires x passes to run", instead of forcing all of fsck to
    run.
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    067d228b
subvolume.c 37.6 KB