• Kent Overstreet's avatar
    bcachefs: New and improved topology repair code · aae15aaf
    Kent Overstreet authored
    This splits out btree topology repair into a separate pass, and makes
    some improvements:
     - When we have to pick which of two overlapping nodes to drop keys
       from, we use the btree node header sequence number to preserve the
       newer node
    
     - the gc code has been changed so that it doesn't bail out if we're
       continuing/ignoring on fsck error - this way the dump tool can skip
       running the repair pass but still walk all reachable metadata
    
     - add a new superblock flag indicating when a filesystem is known to
       have btree topology issues, and the topology repair pass should be
       run
    
     - changing the start/end of a node might mean keys in that node have to
       be deleted: this patch handles that better by splitting it out into a
       separate function and running it explicitly in the topology repair
       code, previously those keys were only being dropped when the btree
       node was read in.
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    aae15aaf
super.c 46.8 KB