Merge tag 'bcachefs-2024-06-28' of https://evilpiepirate.org/git/bcachefs
Pull bcachefs fixes from Kent Overstreet: "Simple stuff: - NULL ptr/err ptr deref fixes - fix for getting wedged on shutdown after journal error - fix missing recalc_capacity() call, capacity now changes correctly after a device goes read only however: our capacity calculation still doesn't take into account when we have mixed ro/rw devices and the ro devices have data on them, that's going to be a more involved fix to separate accounting for "capacity used on ro devices" and "capacity used on rw devices" - boring syzbot stuff Slightly more involved: - discard, invalidate workers are now per device this has the effect of simplifying how we take device refs in these paths, and the device ref cleanup fixes a longstanding race between the device removal path and the discard path - fixes for how the debugfs code takes refs on btree_trans objects we have debugfs code that prints in use btree_trans objects. It uses closure_get() on trans->ref, which is mainly for the cycle detector, but the debugfs code was using it on a closure that may have hit 0, which is not allowed; for performance reasons we cannot avoid having not-in-use transactions on the global list. Introduce some new primitives to fix this and make the synchronization here a whole lot saner" * tag 'bcachefs-2024-06-28' of https://evilpiepirate.org/git/bcachefs: bcachefs: Fix kmalloc bug in __snapshot_t_mut bcachefs: Discard, invalidate workers are now per device bcachefs: Fix shift-out-of-bounds in bch2_blacklist_entries_gc bcachefs: slab-use-after-free Read in bch2_sb_errors_from_cpu bcachefs: Add missing bch2_journal_do_writes() call bcachefs: Fix null ptr deref in journal_pins_to_text() bcachefs: Add missing recalc_capacity() call bcachefs: Fix btree_trans list ordering bcachefs: Fix race between trans_put() and btree_transactions_read() closures: closure_get_not_zero(), closure_return_sync() bcachefs: Make btree_deadlock_to_text() clearer bcachefs: fix seqmutex_relock() bcachefs: Fix freeing of error pointers
Showing
- fs/bcachefs/alloc_background.c 139 additions, 124 deletionsfs/bcachefs/alloc_background.c
- fs/bcachefs/alloc_background.h 5 additions, 1 deletionfs/bcachefs/alloc_background.h
- fs/bcachefs/alloc_foreground.c 2 additions, 2 deletionsfs/bcachefs/alloc_foreground.c
- fs/bcachefs/bcachefs.h 11 additions, 5 deletionsfs/bcachefs/bcachefs.h
- fs/bcachefs/btree_iter.c 6 additions, 13 deletionsfs/bcachefs/btree_iter.c
- fs/bcachefs/chardev.c 6 additions, 3 deletionsfs/bcachefs/chardev.c
- fs/bcachefs/debug.c 69 additions, 40 deletionsfs/bcachefs/debug.c
- fs/bcachefs/journal.c 5 additions, 0 deletionsfs/bcachefs/journal.c
- fs/bcachefs/journal_io.c 7 additions, 0 deletionsfs/bcachefs/journal_io.c
- fs/bcachefs/journal_seq_blacklist.c 1 addition, 1 deletionfs/bcachefs/journal_seq_blacklist.c
- fs/bcachefs/sb-errors.c 10 additions, 4 deletionsfs/bcachefs/sb-errors.c
- fs/bcachefs/seqmutex.h 4 additions, 7 deletionsfs/bcachefs/seqmutex.h
- fs/bcachefs/snapshot.c 3 additions, 0 deletionsfs/bcachefs/snapshot.c
- fs/bcachefs/super.c 5 additions, 1 deletionfs/bcachefs/super.c
- include/linux/closure.h 23 additions, 0 deletionsinclude/linux/closure.h
- lib/closure.c 46 additions, 6 deletionslib/closure.c
Please register or sign in to comment