• Linus Torvalds's avatar
    Merge tag 'bcachefs-2024-09-28' of git://evilpiepirate.org/bcachefs · 9f9a5347
    Linus Torvalds authored
    Pull more bcachefs updates from Kent Overstreet:
     "Assorted minor syzbot fixes, and for bigger stuff:
    
      Fix two disk accounting rewrite bugs:
    
       - Disk accounting keys use the version field of bkey so that journal
         replay can tell which updates have been applied to the btree.
    
         This is set in the transaction commit path, after we've gotten our
         journal reservation (and our time ordering), but the
         BCH_TRANS_COMMIT_skip_accounting_apply flag that journal replay
         uses was incorrectly skipping this for new updates generated prior
         to journal replay.
    
         This fixes the underlying cause of an assertion pop in
         disk_accounting_read.
    
       - A couple of fixes for disk accounting + device removal.
    
         Checking if acocunting replicas entries were marked in the
         superblock was being done at the wrong point, when deltas in the
         journal could still zero them out, and then additionally we'd try
         to add a missing replicas entry to the superblock without checking
         if it referred to an invalid (removed) device.
    
      A whole slew of repair fixes:
    
       - fix infinite loop in propagate_key_to_snapshot_leaves(), this fixes
         an infinite loop when repairing a filesystem with many snapshots
    
       - fix incorrect transaction restart handling leading to occasional
         "fsck counted ..." warnings
    
       - fix warning in __bch2_fsck_err() for bkey fsck errors
    
       - check_inode() in fsck now correctly checks if the filesystem was
         clean
    
       - there shouldn't be pending logged ops if the fs was clean, we now
         check for this
    
       - remove_backpointer() doesn't remove a dirent that doesn't actually
         point to the inode
    
       - many more fsck errors are AUTOFIX"
    
    * tag 'bcachefs-2024-09-28' of git://evilpiepirate.org/bcachefs: (35 commits)
      bcachefs: check_subvol_path() now prints subvol root inode
      bcachefs: remove_backpointer() now checks if dirent points to inode
      bcachefs: dirent_points_to_inode() now warns on mismatch
      bcachefs: Fix lost wake up
      bcachefs: Check for logged ops when clean
      bcachefs: BCH_FS_clean_recovery
      bcachefs: Convert disk accounting BUG_ON() to WARN_ON()
      bcachefs: Fix BCH_TRANS_COMMIT_skip_accounting_apply
      bcachefs: Check for accounting keys with bversion=0
      bcachefs: rename version -> bversion
      bcachefs: Don't delete unlinked inodes before logged op resume
      bcachefs: Fix BCH_SB_ERRS() so we can reorder
      bcachefs: Fix fsck warnings from bkey validation
      bcachefs: Move transaction commit path validation to as late as possible
      bcachefs: Fix disk accounting attempting to mark invalid replicas entry
      bcachefs: Fix unlocked access to c->disk_sb.sb in bch2_replicas_entry_validate()
      bcachefs: Fix accounting read + device removal
      bcachefs: bch_accounting_mode
      bcachefs: fix transaction restart handling in check_extents(), check_dirents()
      bcachefs: kill inode_walker_entry.seen_this_pos
      ...
    9f9a5347
six.c 23.6 KB