• Linus Torvalds's avatar
    Merge tag 'bcachefs-2024-04-10' of https://evilpiepirate.org/git/bcachefs · e1dc191d
    Linus Torvalds authored
    Pull more bcachefs fixes from Kent Overstreet:
     "Notable user impacting bugs
    
       - On multi device filesystems, recovery was looping in
         btree_trans_too_many_iters(). This checks if a transaction has
         touched too many btree paths (because of iteration over many keys),
         and isuses a restart to drop unneeded paths.
    
         But it's now possible for some paths to exceed the previous limit
         without iteration in the interior btree update path, since the
         transaction commit will do alloc updates for every old and new
         btree node, and during journal replay we don't use the btree write
         buffer for locking reasons and thus those updates use btree paths
         when they wouldn't normally.
    
       - Fix a corner case in rebalance when moving extents on a
         durability=0 device. This wouldn't be hit when a device was
         formatted with durability=0 since in that case we'll only use it as
         a write through cache (only cached extents will live on it), but
         durability can now be changed on an existing device.
    
       - bch2_get_acl() could rarely forget to handle a transaction restart;
         this manifested as the occasional missing acl that came back after
         dropping caches.
    
       - Fix a major performance regression on high iops multithreaded write
         workloads (only since 6.9-rc1); a previous fix for a deadlock in
         the interior btree update path to check the journal watermark
         introduced a dependency on the state of btree write buffer flushing
         that we didn't want.
    
       - Assorted other repair paths and recovery fixes"
    
    * tag 'bcachefs-2024-04-10' of https://evilpiepirate.org/git/bcachefs: (25 commits)
      bcachefs: Fix __bch2_btree_and_journal_iter_init_node_iter()
      bcachefs: Kill read lock dropping in bch2_btree_node_lock_write_nofail()
      bcachefs: Fix a race in btree_update_nodes_written()
      bcachefs: btree_node_scan: Respect member.data_allowed
      bcachefs: Don't scan for btree nodes when we can reconstruct
      bcachefs: Fix check_topology() when using node scan
      bcachefs: fix eytzinger0_find_gt()
      bcachefs: fix bch2_get_acl() transaction restart handling
      bcachefs: fix the count of nr_freed_pcpu after changing bc->freed_nonpcpu list
      bcachefs: Fix gap buffer bug in bch2_journal_key_insert_take()
      bcachefs: Rename struct field swap to prevent macro naming collision
      MAINTAINERS: Add entry for bcachefs documentation
      Documentation: filesystems: Add bcachefs toctree
      bcachefs: JOURNAL_SPACE_LOW
      bcachefs: Disable errors=panic for BCH_IOCTL_FSCK_OFFLINE
      bcachefs: Fix BCH_IOCTL_FSCK_OFFLINE for encrypted filesystems
      bcachefs: fix rand_delete unit test
      bcachefs: fix ! vs ~ typo in __clear_bit_le64()
      bcachefs: Fix rebalance from durability=0 device
      bcachefs: Print shutdown journal sequence number
      ...
    e1dc191d
MAINTAINERS 731 KB