• Kent Overstreet's avatar
    bcachefs: Fix disk accounting attempting to mark invalid replicas entry · 431312b5
    Kent Overstreet authored
    This fixes the following bug, where a disk accounting key has an invalid
    replicas entry, and we attempt to add it to the superblock:
    
    bcachefs (3c0860e8-07ca-4276-8954-11c1774be868): starting version 1.12: rebalance_work_acct_fix opts=metadata_replicas=2,data_replicas=2,foreground_target=ssd,background_target=hdd,nopromote_whole_extents,verbose,fsck,fix_errors=yes
    bcachefs (3c0860e8-07ca-4276-8954-11c1774be868): recovering from clean shutdown, journal seq 15211644
    bcachefs (3c0860e8-07ca-4276-8954-11c1774be868): accounting_read...
    accounting not marked in superblock replicas
      replicas cached: 1/1 [0], fixing
    bcachefs (3c0860e8-07ca-4276-8954-11c1774be868): sb invalid before write: Invalid superblock section replicas_v0: invalid device 0 in entry cached: 1/1 [0]
    replicas_v0 (size 88):
    user: 2 [3 5] user: 2 [1 4] cached: 1 [2] btree: 2 [1 2] user: 2 [2 5] cached: 1 [0] cached: 1 [4] journal: 2 [1 5] user: 2 [1 2] user: 2 [2 3] user: 2 [3 4] user: 2 [4 5] cached: 1 [1] cached: 1 [3] cached: 1 [5] journal: 2 [1 2] journal: 2 [2 5] btree: 2 [2 5] user: 2 [1 3] user: 2 [1 5] user: 2 [2 4]
    
    bcachefs (3c0860e8-07ca-4276-8954-11c1774be868): inconsistency detected - emergency read only at journal seq 15211644
    accounting not marked in superblock replicas
      replicas user: 1/1 [3], fixing
    bcachefs (3c0860e8-07ca-4276-8954-11c1774be868): sb invalid before write: Invalid superblock section replicas_v0: invalid device 0 in entry cached: 1/1 [0]
    replicas_v0 (size 96):
    user: 2 [3 5] user: 2 [1 3] cached: 1 [2] btree: 2 [1 2] user: 2 [2 4] cached: 1 [0] cached: 1 [4] journal: 2 [1 5] user: 1 [3] user: 2 [1 5] user: 2 [3 4] user: 2 [4 5] cached: 1 [1] cached: 1 [3] cached: 1 [5] journal: 2 [1 2] journal: 2 [2 5] btree: 2 [2 5] user: 2 [1 2] user: 2 [1 4] user: 2 [2 3] user: 2 [2 5]
    
    accounting not marked in superblock replicas
      replicas user: 1/2 [3 7], fixing
    bcachefs (3c0860e8-07ca-4276-8954-11c1774be868): sb invalid before write: Invalid superblock section replicas_v0: invalid device 7 in entry user: 1/2 [3 7]
    replicas_v0 (size 96):
    user: 2 [3 7] user: 2 [1 3] cached: 1 [2] btree: 2 [1 2] user: 2 [2 4] cached: 1 [0] cached: 1 [4] journal: 2 [1 5] user: 1 [3] user: 2 [1 5] user: 2 [3 4] user: 2 [4 5] cached: 1 [1] cached: 1 [3] cached: 1 [5] journal: 2 [1 2] journal: 2 [2 5] btree: 2 [2 5] user: 2 [1 2] user: 2 [1 4] user: 2 [2 3] user: 2 [2 5] user: 2 [3 5]
    
     done
    bcachefs (3c0860e8-07ca-4276-8954-11c1774be868): alloc_read... done
    bcachefs (3c0860e8-07ca-4276-8954-11c1774be868): stripes_read... done
    bcachefs (3c0860e8-07ca-4276-8954-11c1774be868): snapshots_read... done
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    431312b5
disk_accounting.c 24.2 KB