linux/fs/bcachefs
Linus Torvalds a4145ce1e7 bcachefs fixes for 6.9-rc1
Assorted bugfixes.
 
 Most are fixes for simple assertion pops; the most significant fix is
 for a deadlock in recovery when we have to rewrite large numbers of
 btree nodes to fix errors. This was incorrectly running out of the same
 workqueue as the core interior btree update path - we now give it its
 own single threaded workqueue.
 
 This was visible to users as "bch2_btree_update_start(): error:
 BCH_ERR_journal_reclaim_would_deadlock" - and then recovery hanging.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEKnAFLkS8Qha+jvQrE6szbY3KbnYFAmX6CoYACgkQE6szbY3K
 bnZp2hAAwAw8haQKeR0+0aAaqTavvBcjcloeKlQhRl+OxV1rAgxcjKGai5txZ9rI
 d4FVOOo7MqHq1oN9Ydsy1+0R70eCFzhDxhT1Ph5MhIzc7nd8lC0GQjO0atx23cni
 4UZgSxi6quEP401MTVhvVbCPLmvfPJLpIBzptJUDS/eysxSZpS4A10gEzipoNjPv
 DOdrsvoo8nQX53tERJ/IxtroFL44p4y8OyZK65NILFF9xZosKz1P9ktrWufmRVoY
 /Hl8SUfhSNJDFW5pIMPOmoG/+RG+hJK4BaiNWPXLaSvO+3PmQskJ2tvHQVNjHQYt
 dMYWcy4hN47XtYvrHG9xmaQP+lZCDijdBrhmik4brqfZbloH43MVdDFysjfIPhUm
 qk+zzb0uE0ZhwRvQOjnYEQpHjXmj7Bm80+dhfNuuiKlhz4bOeDz8UZykJOzgD0zH
 n4cd+nbCxuogkukzLLQMbFv1+MCsCZpStkXP3GQXCK0k+H2briPGALuA74sxfAhH
 ajHLNr6qMU+uB6Ce0oM7e+9dPLfV/NalEwWW7aR/4TamxPBt575Hpjp0BV//BRfD
 IxdEKrMNdbKBJDUj1s5aTwcSF6ae6zHtyQXuKr93mWQqNvVXvX5/FPQYr70uA1VP
 iieBkde7aSTGCbTdTEcY9NcXdT2X/91aobsPvwGeq1z5Y1JJ0nU=
 =J/hu
 -----END PGP SIGNATURE-----

Merge tag 'bcachefs-2024-03-19' of https://evilpiepirate.org/git/bcachefs

Pull bcachefs fixes from Kent Overstreet:
 "Assorted bugfixes.

  Most are fixes for simple assertion pops; the most significant fix is
  for a deadlock in recovery when we have to rewrite large numbers of
  btree nodes to fix errors. This was incorrectly running out of the
  same workqueue as the core interior btree update path - we now give it
  its own single threaded workqueue.

  This was visible to users as "bch2_btree_update_start(): error:
  BCH_ERR_journal_reclaim_would_deadlock" - and then recovery hanging"

* tag 'bcachefs-2024-03-19' of https://evilpiepirate.org/git/bcachefs:
  bcachefs: Fix lost wakeup on journal shutdown
  bcachefs; Fix deadlock in bch2_btree_update_start()
  bcachefs: ratelimit errors from async_btree_node_rewrite
  bcachefs: Run check_topology() first
  bcachefs: Improve bch2_fatal_error()
  bcachefs: Fix lost transaction restart error
  bcachefs: Don't corrupt journal keys gap buffer when dropping alloc info
  bcachefs: fix for building in userspace
  bcachefs: bch2_snapshot_is_ancestor() now safe to call in early recovery
  bcachefs: Fix nested transaction restart handling in bch2_bucket_gens_init()
  bcachefs: Improve sysfs internal/btree_updates
  bcachefs: Split out btree_node_rewrite_worker
  bcachefs: Fix locking in bch2_alloc_write_key()
  bcachefs: Avoid extent entry type assertions in .invalid()
  bcachefs: Fix spurious -BCH_ERR_transaction_restart_nested
  bcachefs: Fix check_key_has_snapshot() call
  bcachefs: Change "accounting overran journal reservation" to a warning
2024-03-19 17:27:25 -07:00
..
acl.c
acl.h
alloc_background.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
alloc_background.h bcachefs: Split out discard fastpath 2024-03-13 21:22:25 -04:00
alloc_background_format.h
alloc_foreground.c bcachefs: Fix lost transaction restart error 2024-03-18 00:24:23 -04:00
alloc_foreground.h
alloc_types.h
backpointers.c bcachefs: reconstruct_alloc cleanup 2024-03-13 21:22:26 -04:00
backpointers.h
bbpos.h
bbpos_types.h bcachefs: Pin btree cache in ram for random access in fsck 2024-03-13 21:22:24 -04:00
bcachefs.h bcachefs: Split out btree_node_rewrite_worker 2024-03-17 20:53:12 -04:00
bcachefs_format.h bcachefs: omit alignment attribute on big endian struct bkey 2024-03-13 21:22:25 -04:00
bcachefs_ioctl.h
bkey.c
bkey.h bcachefs: Split out bkey_types.h 2024-03-13 21:22:26 -04:00
bkey_buf.h
bkey_cmp.h
bkey_methods.c
bkey_methods.h
bkey_sort.c
bkey_sort.h
bkey_types.h bcachefs: Split out bkey_types.h 2024-03-13 21:22:26 -04:00
bset.c
bset.h
btree_cache.c bcachefs: Pin btree cache in ram for random access in fsck 2024-03-13 21:22:24 -04:00
btree_cache.h
btree_gc.c bcachefs: Fix locking in bch2_alloc_write_key() 2024-03-17 20:53:11 -04:00
btree_gc.h
btree_io.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
btree_io.h
btree_iter.c bcachefs: Use kvzalloc() when dynamically allocating btree paths 2024-03-13 21:22:24 -04:00
btree_iter.h
btree_journal_iter.c bcachefs: split out ignore_blacklisted, ignore_not_dirty 2024-03-13 21:22:25 -04:00
btree_journal_iter.h bcachefs: btree node prefetching in check_topology 2024-03-10 15:34:08 -04:00
btree_key_cache.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
btree_key_cache.h
btree_key_cache_types.h
btree_locking.c bcachefs: Drop redundant btree_path_downgrade()s 2024-03-13 21:22:25 -04:00
btree_locking.h
btree_trans_commit.c
btree_types.h bcachefs: Pin btree cache in ram for random access in fsck 2024-03-13 21:22:24 -04:00
btree_update.c bcachefs: Fix btree key cache coherency during replay 2024-03-13 21:22:26 -04:00
btree_update.h bcachefs: bch2_btree_bit_mod() 2024-03-13 21:22:24 -04:00
btree_update_interior.c bcachefs; Fix deadlock in bch2_btree_update_start() 2024-03-18 23:35:42 -04:00
btree_update_interior.h bcachefs: Improve sysfs internal/btree_updates 2024-03-17 20:53:12 -04:00
btree_write_buffer.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
btree_write_buffer.h
btree_write_buffer_types.h
buckets.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
buckets.h
buckets_types.h
buckets_waiting_for_journal.c
buckets_waiting_for_journal.h
buckets_waiting_for_journal_types.h
chardev.c bcachefs: copy_(to|from)_user_errcode() 2024-03-13 21:22:26 -04:00
chardev.h
checksum.c bcachefs: fixup for building in userspace 2024-03-10 15:34:08 -04:00
checksum.h
clock.c
clock.h
clock_types.h
compress.c bcachefs: kill kvpmalloc() 2024-03-13 18:39:12 -04:00
compress.h
darray.c
darray.h
data_update.c
data_update.h
debug.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
debug.h
dirent.c bcachefs: Check for subvolume children when deleting subvolumes 2024-03-13 21:22:24 -04:00
dirent.h bcachefs: Correctly reattach subvolumes 2024-03-13 21:22:24 -04:00
dirent_format.h
disk_groups.c
disk_groups.h
disk_groups_types.h
ec.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
ec.h
ec_format.h
ec_types.h
errcode.c bcachefs: Errcode tracepoint, documentation 2024-03-13 21:22:25 -04:00
errcode.h bcachefs: intercept mountoption value for bool type 2024-03-13 21:22:26 -04:00
error.c bcachefs: Kill more -EIO error codes 2024-03-13 21:22:23 -04:00
error.h bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
extent_update.c
extent_update.h
extents.c
extents.h bcachefs: Avoid extent entry type assertions in .invalid() 2024-03-17 20:53:11 -04:00
extents_format.h
extents_types.h
eytzinger.h
fifo.h bcachefs: kill kvpmalloc() 2024-03-13 18:39:12 -04:00
fs-common.c bcachefs: Check for subvolume children when deleting subvolumes 2024-03-13 21:22:24 -04:00
fs-common.h
fs-io-buffered.c bcachefs: Buffered write path now can avoid the inode lock 2024-03-13 21:22:26 -04:00
fs-io-buffered.h
fs-io-direct.c
fs-io-direct.h
fs-io-pagecache.c
fs-io-pagecache.h bcachefs: fix bch_folio_sector padding 2024-03-13 21:22:26 -04:00
fs-io.c
fs-io.h
fs-ioctl.c
fs-ioctl.h
fs.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
fs.h
fsck.c bcachefs: Fix spurious -BCH_ERR_transaction_restart_nested 2024-03-17 20:53:11 -04:00
fsck.h bcachefs: bch2_check_subvolume_structure() 2024-03-13 21:22:25 -04:00
inode.c bcachefs: Always flush write buffer in delete_dead_inodes() 2024-03-13 21:22:26 -04:00
inode.h bcachefs: Pass inode bkey to check_path() 2024-03-13 21:22:24 -04:00
inode_format.h
io_misc.c
io_misc.h
io_read.c bcachefs: Prefer struct_size over open coded arithmetic 2024-03-13 21:22:26 -04:00
io_read.h
io_write.c bcachefs: time_stats: split stats-with-quantiles into a separate structure 2024-03-13 21:38:01 -04:00
io_write.h
io_write_types.h
journal.c bcachefs: Fix lost wakeup on journal shutdown 2024-03-18 23:35:42 -04:00
journal.h bcachefs: better journal pipelining 2024-03-10 15:34:08 -04:00
journal_io.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
journal_io.h bcachefs: split out ignore_blacklisted, ignore_not_dirty 2024-03-13 21:22:25 -04:00
journal_reclaim.c bcachefs: pull out time_stats.[ch] 2024-03-13 21:30:35 -04:00
journal_reclaim.h
journal_sb.c
journal_sb.h
journal_seq_blacklist.c bcachefs: Prefer struct_size over open coded arithmetic 2024-03-13 21:22:26 -04:00
journal_seq_blacklist.h
journal_types.h bcachefs: pull out time_stats.[ch] 2024-03-13 21:30:35 -04:00
Kconfig
keylist.c
keylist.h
keylist_types.h
logged_ops.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
logged_ops.h
logged_ops_format.h
lru.c bcachefs: reconstruct_alloc cleanup 2024-03-13 21:22:26 -04:00
lru.h
Makefile bcachefs: pull out time_stats.[ch] 2024-03-13 21:30:35 -04:00
mean_and_variance.c bcachefs: mean_and_variance: put struct mean_and_variance_weighted on a diet 2024-03-13 21:37:58 -04:00
mean_and_variance.h bcachefs: mean_and_variance: put struct mean_and_variance_weighted on a diet 2024-03-13 21:37:58 -04:00
mean_and_variance_test.c bcachefs: mean_and_variance: put struct mean_and_variance_weighted on a diet 2024-03-13 21:37:58 -04:00
migrate.c bcachefs: Kill some -EINVALs 2024-03-10 15:34:09 -04:00
migrate.h
move.c
move.h
move_types.h
movinggc.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
movinggc.h
nocow_locking.c
nocow_locking.h
nocow_locking_types.h
opts.c bcachefs: intercept mountoption value for bool type 2024-03-13 21:22:26 -04:00
opts.h bcachefs: Pin btree cache in ram for random access in fsck 2024-03-13 21:22:24 -04:00
printbuf.c
printbuf.h
quota.c
quota.h
quota_format.h
quota_types.h
rebalance.c bcachefs: rebalance_status now shows correct units 2024-03-13 21:22:25 -04:00
rebalance.h
rebalance_types.h
recovery.c bcachefs: Don't corrupt journal keys gap buffer when dropping alloc info 2024-03-17 21:17:38 -04:00
recovery.h
recovery_types.h bcachefs: Run check_topology() first 2024-03-18 00:24:24 -04:00
reflink.c
reflink.h
reflink_format.h
replicas.c
replicas.h
replicas_types.h
sb-clean.c bcachefs: jset_entry_datetime 2024-03-10 15:34:08 -04:00
sb-clean.h
sb-counters.c
sb-counters.h
sb-counters_format.h
sb-downgrade.c bcachefs: reconstruct_alloc cleanup 2024-03-13 21:22:26 -04:00
sb-downgrade.h
sb-errors.c
sb-errors.h
sb-errors_types.h bcachefs: check inode->bi_parent_subvol against dirent 2024-03-13 21:22:24 -04:00
sb-members.c
sb-members.h
seqmutex.h
siphash.c
siphash.h
six.c
six.h
snapshot.c bcachefs: bch2_snapshot_is_ancestor() now safe to call in early recovery 2024-03-17 20:53:12 -04:00
snapshot.h
snapshot_format.h
str_hash.h bcachefs: bch2_hash_set_snapshot() -> bch2_hash_set_in_snapshot() 2024-03-10 15:34:08 -04:00
subvolume.c bcachefs: Check for subvolume children when deleting subvolumes 2024-03-13 21:22:24 -04:00
subvolume.h bcachefs: Check for subvolume children when deleting subvolumes 2024-03-13 21:22:24 -04:00
subvolume_format.h bcachefs: bch_subvolume::fs_path_parent 2024-03-13 21:22:24 -04:00
subvolume_types.h
super-io.c bcachefs fixes for 6.9-rc1 2024-03-19 17:27:25 -07:00
super-io.h
super.c bcachefs: Improve bch2_fatal_error() 2024-03-18 00:24:24 -04:00
super.h
super_types.h
sysfs.c bcachefs: time_stats: split stats-with-quantiles into a separate structure 2024-03-13 21:38:01 -04:00
sysfs.h
tests.c
tests.h
thread_with_file.c bcachefs: thread_with_file: add f_ops.flush 2024-03-13 21:22:20 -04:00
thread_with_file.h bcachefs: thread_with_file: add f_ops.flush 2024-03-13 21:22:20 -04:00
thread_with_file_types.h bcachefs: thread_with_stdio: convert to darray 2024-03-13 18:39:13 -04:00
time_stats.c bcachefs: time_stats: split stats-with-quantiles into a separate structure 2024-03-13 21:38:01 -04:00
time_stats.h bcachefs: time_stats: shrink time_stat_buffer for better alignment 2024-03-13 21:38:03 -04:00
trace.c
trace.h bcachefs: Errcode tracepoint, documentation 2024-03-13 21:22:25 -04:00
two_state_shared_lock.c
two_state_shared_lock.h
util.c bcachefs: time_stats: split stats-with-quantiles into a separate structure 2024-03-13 21:38:01 -04:00
util.h bcachefs: Don't corrupt journal keys gap buffer when dropping alloc info 2024-03-17 21:17:38 -04:00
varint.c
varint.h
vstructs.h
xattr.c bcachefs: avoid returning private error code in bch2_xattr_bcachefs_set 2024-03-13 21:22:26 -04:00
xattr.h
xattr_format.h