linux/fs/bcachefs
Linus Torvalds c9d01179e1 Second bcachefs pull request for 6.7-rc1
Here's the second big bcachefs pull request. This brings your tree up to
 date with my master branch, which is what existing bcachefs users are
 currently running.
 
 All but the last few patches have been in linux-next, those being small
 fixes. Test results from my dashboard:
   https://evilpiepirate.org/~testdashboard/ci?commit=c7046ed0cf9bb33599aa7e72e7b67bba4be42d64
 
 New features:
  - rebalance_work btree (and metadata version 1.3): the rebalance thread
    no longer has to scan to find extents that need processing - big
    scalability improvement.
  - sb_errors superblock section: this adds counters for each fsck error
    type, since filesystem creation, along with the date of the most
    recent error. It'll get us better bug reports (since users do not
    typically report errors that fsck was able to fix), and I might add
    telemetry for this in the future.
 
 Fixes include:
  - multiple snapshot deletion fixes
  - members_v2 fixups
  - deleted_inodes btree fixes
  - copygc thread no longer spins when a device is full but has no
    fragmented buckets (i.e. rebalance needs to move data around instead)
  - a fix for a memory reclaim issue with the btree key cache: we're now
    careful not to hold the srcu read lock that blocks key cache reclaim
    for too long
  - an early allocator locking fix, from Brian
  - endianness fixes, from Brian
  - CONFIG_BCACHEFS_DEBUG_TRANSACTIONS no longer defaults to y, a big
    performance improvement on multithreaded workloads
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEKnAFLkS8Qha+jvQrE6szbY3KbnYFAmVH9xYACgkQE6szbY3K
 bnahLRAAiNRZL73SQ+MW79o4yPqGwt0Eyy/mvoiGpZf1B8uXp0oZ55j2w3l887Uf
 LeM03mInAYCPdyp/d4vxqIr96j9BODmRRl8sEkkGdJDzokLG+22F0ovOe45KWTxL
 kBoNdng/O/oeOe/1K7taP3KzBvMx2nOF6oA+xfgyCjECMArAIXek0iocyEUR4Ywd
 vGKhLNn1k2c+94wacnDYwjjdcLBxoqxsFXlpu6V0BcaY+DX4J3aBaGmj75KEoCI0
 VbBOzxrOO4QzJrzW2+hxZZWgGyvReCkBJvqfORfuPxiSbFobTim10MdfZOAMQA1U
 Xr1FTEpK1wMX0/pPVgZRqaOsttC+yc/SsfPNgSxybgHPbDlMLaakDHjvYssbKOYG
 urDWSMG5yCsktSLj95SXsvUFKZaZFD72SKBNdgdt/nZjwTHuNQ7IkdrMwIrCQ/PT
 Ifn50UrR/Ahd8RAd5tyNCPw6U9VfwnxACSNl2KA7ONKpvHb+gSt1JsJTDyz1+gN9
 nFVrw1SHKQ6EIV6XhVon/5DEuRTzqoYGWoN08FHEUq9fBlvnVpmbJErCQMplOjz9
 OQnAfpJH4YqkpXyjFAjP1V0An+RUn8QvDgXNqC9TyvCYuOliVFuil4y7/c+7oIQU
 NEoz+jVLenqsGOGAbduI4/Q567COojRgwEvbebSIxSImXuhCNj4=
 =Lo4N
 -----END PGP SIGNATURE-----

Merge tag 'bcachefs-2023-11-5' of https://evilpiepirate.org/git/bcachefs

Pull more bcachefs updates from Kent Overstreet:
 "Here's the second big bcachefs pull request. This brings your tree up
  to date with my master branch, which is what existing bcachefs users
  are currently running.

  New features:
   - rebalance_work btree (and metadata version 1.3): the rebalance
     thread no longer has to scan to find extents that need processing -
     big scalability improvement.
   - sb_errors superblock section: this adds counters for each fsck
     error type, since filesystem creation, along with the date of the
     most recent error. It'll get us better bug reports (since users do
     not typically report errors that fsck was able to fix), and I might
     add telemetry for this in the future.

  Fixes include:
   - multiple snapshot deletion fixes
   - members_v2 fixups
   - deleted_inodes btree fixes
   - copygc thread no longer spins when a device is full but has no
     fragmented buckets (i.e. rebalance needs to move data around
     instead)
   - a fix for a memory reclaim issue with the btree key cache: we're
     now careful not to hold the srcu read lock that blocks key cache
     reclaim for too long
   - an early allocator locking fix, from Brian
   - endianness fixes, from Brian
   - CONFIG_BCACHEFS_DEBUG_TRANSACTIONS no longer defaults to y, a big
     performance improvement on multithreaded workloads"

* tag 'bcachefs-2023-11-5' of https://evilpiepirate.org/git/bcachefs: (70 commits)
  bcachefs: Improve stripe checksum error message
  bcachefs: Simplify, fix bch2_backpointer_get_key()
  bcachefs: kill thing_it_points_to arg to backpointer_not_found()
  bcachefs: bch2_ec_read_extent() now takes btree_trans
  bcachefs: bch2_stripe_to_text() now prints ptr gens
  bcachefs: Don't iterate over journal entries just for btree roots
  bcachefs: Break up bch2_journal_write()
  bcachefs: Replace ERANGE with private error codes
  bcachefs: bkey_copy() is no longer a macro
  bcachefs: x-macro-ify inode flags enum
  bcachefs: Convert bch2_fs_open() to darray
  bcachefs: Move __bch2_members_v2_get_mut to sb-members.h
  bcachefs: bch2_prt_datetime()
  bcachefs: CONFIG_BCACHEFS_DEBUG_TRANSACTIONS no longer defaults to y
  bcachefs: Add a comment for BTREE_INSERT_NOJOURNAL usage
  bcachefs: rebalance_work btree is not a snapshots btree
  bcachefs: Add missing printk newlines
  bcachefs: Fix recovery when forced to use JSET_NO_FLUSH journal entry
  bcachefs: .get_parent() should return an error pointer
  bcachefs: Fix bch2_delete_dead_inodes()
  ...
2023-11-07 11:38:38 -08:00
..
acl.c bcachefs: acl: Add missing check in bch2_acl_chmod() 2023-10-22 17:10:14 -04:00
acl.h bcachefs: bch2_acl_to_text() 2023-10-22 17:10:12 -04:00
alloc_background.c bcachefs: use swab40 for bch_backpointer.bucket_offset bitfield 2023-11-04 22:19:13 -04:00
alloc_background.h bcachefs: Ensure copygc does not spin 2023-11-04 14:17:11 -04:00
alloc_foreground.c bcachefs: update alloc cursor in early bucket allocator 2023-11-04 22:19:13 -04:00
alloc_foreground.h bcachefs: sb-members.c 2023-10-22 17:10:10 -04:00
alloc_types.h bcachefs: Fix assorted checkpatch nits 2023-10-22 17:10:10 -04:00
backpointers.c bcachefs: Simplify, fix bch2_backpointer_get_key() 2023-11-05 13:14:22 -05:00
backpointers.h bcachefs: use swab40 for bch_backpointer.bucket_offset bitfield 2023-11-04 22:19:13 -04:00
bbpos_types.h bcachefs: move: convert to bbpos 2023-10-31 12:18:37 -04:00
bbpos.h bcachefs: move: convert to bbpos 2023-10-31 12:18:37 -04:00
bcachefs_format.h bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
bcachefs_ioctl.h
bcachefs.h bcachefs: bch_sb_field_errors 2023-11-01 21:11:08 -04:00
bkey_buf.h
bkey_cmp.h
bkey_methods.c bcachefs: rebalance_work btree is not a snapshots btree 2023-11-04 22:19:13 -04:00
bkey_methods.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
bkey_sort.c bcachefs: bkey_copy() is no longer a macro 2023-11-05 13:12:18 -05:00
bkey_sort.h bcachefs: Array bounds fixes 2023-10-22 17:10:12 -04:00
bkey.c bcachefs: Fix W=12 build errors 2023-10-22 17:10:13 -04:00
bkey.h bcachefs: bkey_copy() is no longer a macro 2023-11-05 13:12:18 -05:00
bset.c bcachefs: Kill other unreachable() uses 2023-10-22 17:10:13 -04:00
bset.h
btree_cache.c Second bcachefs pull request for 6.7-rc1 2023-11-07 11:38:38 -08:00
btree_cache.h bcachefs: bch2_btree_id_str() 2023-10-31 12:18:37 -04:00
btree_gc.c bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
btree_gc.h bcachefs: Split up btree_update_leaf.c 2023-10-22 17:10:10 -04:00
btree_io.c bcachefs: bkey_copy() is no longer a macro 2023-11-05 13:12:18 -05:00
btree_io.h bcachefs: Break up io.c 2023-10-22 17:10:12 -04:00
btree_iter.c bcachefs: Add a comment for BTREE_INSERT_NOJOURNAL usage 2023-11-04 22:19:13 -04:00
btree_iter.h bcachefs: Add a comment for BTREE_INSERT_NOJOURNAL usage 2023-11-04 22:19:13 -04:00
btree_journal_iter.c bcachefs: btree_journal_iter.c 2023-10-22 17:10:10 -04:00
btree_journal_iter.h bcachefs: btree_journal_iter.c 2023-10-22 17:10:10 -04:00
btree_key_cache.c Second bcachefs pull request for 6.7-rc1 2023-11-07 11:38:38 -08:00
btree_key_cache.h
btree_locking.c bcachefs: Ensure srcu lock is not held too long 2023-11-04 14:17:11 -04:00
btree_locking.h bcachefs: Don't downgrade locks on transaction restart 2023-11-01 21:11:08 -04:00
btree_trans_commit.c bcachefs: rebalance_work btree is not a snapshots btree 2023-11-04 22:19:13 -04:00
btree_types.h Second bcachefs pull request for 6.7-rc1 2023-11-07 11:38:38 -08:00
btree_update_interior.c bcachefs: Don't iterate over journal entries just for btree roots 2023-11-05 13:12:18 -05:00
btree_update_interior.h bcachefs: Don't iterate over journal entries just for btree roots 2023-11-05 13:12:18 -05:00
btree_update.c bcachefs: More minor smatch fixes 2023-10-22 17:10:14 -04:00
btree_update.h bcachefs: Remove duplicate include 2023-10-22 17:10:14 -04:00
btree_write_buffer_types.h
btree_write_buffer.c bcachefs: Heap allocate btree_trans 2023-10-22 17:10:13 -04:00
btree_write_buffer.h
buckets_types.h
buckets_waiting_for_journal_types.h
buckets_waiting_for_journal.c bcachefs: Fix -Wformat in bch2_set_bucket_needs_journal_commit() 2023-10-22 17:10:13 -04:00
buckets_waiting_for_journal.h
buckets.c bcachefs: Fix an integer overflow 2023-11-01 21:11:08 -04:00
buckets.h bcachefs: All triggers are BTREE_TRIGGER_WANTS_OLD_AND_NEW 2023-10-31 12:18:37 -04:00
chardev.c bcachefs: move: convert to bbpos 2023-10-31 12:18:37 -04:00
chardev.h bcachefs: Fix assorted checkpatch nits 2023-10-22 17:10:10 -04:00
checksum.c bcachefs: bch2_sb_field_get() refactoring 2023-10-22 17:10:16 -04:00
checksum.h bcachefs: Fixes for building in userspace 2023-10-22 17:10:15 -04:00
clock_types.h
clock.c
clock.h
compress.c bcachefs: rebalance_work 2023-11-01 21:11:05 -04:00
compress.h bcachefs: rebalance_work 2023-11-01 21:11:05 -04:00
counters.c bcachefs: bch2_sb_field_get() refactoring 2023-10-22 17:10:16 -04:00
counters.h
darray.h bcachefs: Convert bch2_fs_open() to darray 2023-11-05 13:12:17 -05:00
data_update.c bcachefs: Don't downgrade locks on transaction restart 2023-11-01 21:11:08 -04:00
data_update.h bcachefs: move: convert to bbpos 2023-10-31 12:18:37 -04:00
debug.c bcachefs: bch2_btree_id_str() 2023-10-31 12:18:37 -04:00
debug.h
dirent.c bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
dirent.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
disk_groups_types.h bcachefs: bch2_disk_path_to_text() no longer takes sb_lock 2023-10-31 12:18:37 -04:00
disk_groups.c bcachefs: bch2_disk_path_to_text() no longer takes sb_lock 2023-10-31 12:18:37 -04:00
disk_groups.h bcachefs: bch2_disk_path_to_text() no longer takes sb_lock 2023-10-31 12:18:37 -04:00
ec_types.h
ec.c bcachefs: Improve stripe checksum error message 2023-11-05 13:14:22 -05:00
ec.h bcachefs: bch2_ec_read_extent() now takes btree_trans 2023-11-05 13:13:57 -05:00
errcode.c bcachefs: Fix W=12 build errors 2023-10-22 17:10:13 -04:00
errcode.h bcachefs: Replace ERANGE with private error codes 2023-11-05 13:12:18 -05:00
error.c bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
error.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
extent_update.c
extent_update.h
extents_types.h
extents.c bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
extents.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
eytzinger.h
fifo.h
fs-common.c bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
fs-common.h
fs-io-buffered.c bcachefs: allow writeback to fill bio completely 2023-11-04 22:19:13 -04:00
fs-io-buffered.h bcachefs: Split up fs-io.[ch] 2023-10-22 17:10:10 -04:00
fs-io-direct.c closures: Fix race in closure_sync() 2023-10-30 21:48:22 -04:00
fs-io-direct.h bcachefs: Split up fs-io.[ch] 2023-10-22 17:10:10 -04:00
fs-io-pagecache.c bcachefs: Heap allocate btree_trans 2023-10-22 17:10:13 -04:00
fs-io-pagecache.h bcachefs: Split up fs-io.[ch] 2023-10-22 17:10:10 -04:00
fs-io.c bcachefs: Heap allocate btree_trans 2023-10-22 17:10:13 -04:00
fs-io.h bcachefs: New io_misc.c helpers 2023-10-22 17:10:12 -04:00
fs-ioctl.c bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
fs-ioctl.h bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
fs.c Second bcachefs pull request for 6.7-rc1 2023-11-07 11:38:38 -08:00
fs.h bcachefs: Fixes for building in userspace 2023-10-22 17:10:15 -04:00
fsck.c bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
fsck.h bcachefs: Check for too-large encoded extents 2023-10-31 12:18:37 -04:00
inode.c bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
inode.h bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
io_misc.c bcachefs: Fix an integer overflow 2023-11-01 21:11:08 -04:00
io_misc.h bcachefs: Fix an integer overflow 2023-11-01 21:11:08 -04:00
io_read.c bcachefs: bch2_ec_read_extent() now takes btree_trans 2023-11-05 13:13:57 -05:00
io_read.h bcachefs: Break up io.c 2023-10-22 17:10:12 -04:00
io_write_types.h bcachefs: Break up io.c 2023-10-22 17:10:12 -04:00
io_write.c bcachefs: x-macro-ify inode flags enum 2023-11-05 13:12:18 -05:00
io_write.h bcachefs: Break up io.c 2023-10-22 17:10:12 -04:00
journal_io.c bcachefs: Don't iterate over journal entries just for btree roots 2023-11-05 13:12:18 -05:00
journal_io.h bcachefs: Convert journal validation to bkey_invalid_flags 2023-10-22 17:10:10 -04:00
journal_reclaim.c bcachefs: refactor pin put helpers 2023-10-22 17:10:14 -04:00
journal_reclaim.h bcachefs: refactor pin put helpers 2023-10-22 17:10:14 -04:00
journal_sb.c bcachefs: bch2_sb_field_get() refactoring 2023-10-22 17:10:16 -04:00
journal_sb.h
journal_seq_blacklist.c bcachefs: bch2_sb_field_get() refactoring 2023-10-22 17:10:16 -04:00
journal_seq_blacklist.h
journal_types.h bcachefs: Kill JOURNAL_WATERMARK 2023-10-22 17:10:05 -04:00
journal.c bcachefs: Ensure devices are always correctly initialized 2023-10-31 12:18:37 -04:00
journal.h bcachefs: Ensure devices are always correctly initialized 2023-10-31 12:18:37 -04:00
Kconfig bcachefs: CONFIG_BCACHEFS_DEBUG_TRANSACTIONS no longer defaults to y 2023-11-04 22:19:13 -04:00
keylist_types.h
keylist.c
keylist.h
logged_ops.c bcachefs: Heap allocate btree_trans 2023-10-22 17:10:13 -04:00
logged_ops.h bcachefs: Log finsert/fcollapse operations 2023-10-22 17:10:12 -04:00
lru.c bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
lru.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
Makefile bcachefs: bch_sb_field_errors 2023-11-01 21:11:08 -04:00
mean_and_variance_test.c
mean_and_variance.c
mean_and_variance.h
migrate.c bcachefs: Heap allocate btree_trans 2023-10-22 17:10:13 -04:00
migrate.h
move_types.h bcachefs: move: move_stats refactoring 2023-10-31 12:18:38 -04:00
move.c bcachefs: Data move path now uses bch2_trans_unlock_long() 2023-11-04 22:19:11 -04:00
move.h bcachefs: Data move path now uses bch2_trans_unlock_long() 2023-11-04 22:19:11 -04:00
movinggc.c bcachefs: fix odebug warn and lockdep splat due to on-stack rhashtable 2023-11-04 22:19:13 -04:00
movinggc.h
nocow_locking_types.h
nocow_locking.c bcachefs: More assertions for nocow locking 2023-10-22 17:10:15 -04:00
nocow_locking.h bcachefs: More assertions for nocow locking 2023-10-22 17:10:15 -04:00
opts.c bcachefs: Replace ERANGE with private error codes 2023-11-05 13:12:18 -05:00
opts.h bcachefs: Add IO error counts to bch_member 2023-11-01 21:11:08 -04:00
printbuf.c bcachefs: Fix bch2_prt_bitflags() 2023-10-31 12:18:37 -04:00
printbuf.h
quota_types.h
quota.c bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
quota.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
rebalance_types.h bcachefs: rebalance_work 2023-11-01 21:11:05 -04:00
rebalance.c bcachefs: Data move path now uses bch2_trans_unlock_long() 2023-11-04 22:19:11 -04:00
rebalance.h bcachefs: rebalance_work 2023-11-01 21:11:05 -04:00
recovery_types.h bcachefs: rebalance_work 2023-11-01 21:11:05 -04:00
recovery.c bcachefs: Fix recovery when forced to use JSET_NO_FLUSH journal entry 2023-11-04 22:19:13 -04:00
recovery.h bcachefs: btree_journal_iter.c 2023-10-22 17:10:10 -04:00
reflink.c bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
reflink.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
replicas_types.h
replicas.c bcachefs: Fix error path in bch2_replicas_gc_end() 2023-11-01 21:11:08 -04:00
replicas.h
sb-clean.c bcachefs: Don't iterate over journal entries just for btree roots 2023-11-05 13:12:18 -05:00
sb-clean.h bcachefs: sb-clean.c 2023-10-22 17:10:10 -04:00
sb-errors_types.h bcachefs: bch_sb_field_errors 2023-11-01 21:11:08 -04:00
sb-errors.c bcachefs: bch2_prt_datetime() 2023-11-05 13:12:08 -05:00
sb-errors.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
sb-members.c bcachefs: Move __bch2_members_v2_get_mut to sb-members.h 2023-11-05 13:12:17 -05:00
sb-members.h bcachefs: Move __bch2_members_v2_get_mut to sb-members.h 2023-11-05 13:12:17 -05:00
seqmutex.h bcachefs: seqmutex; fix a lockdep splat 2023-10-22 17:10:04 -04:00
siphash.c
siphash.h
six.c six locks: Lock contended tracepoints 2023-10-30 22:26:45 -04:00
six.h
snapshot.c bcachefs: Fix deleted inodes btree in snapshot deletion 2023-11-01 21:11:08 -04:00
snapshot.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
str_hash.h
subvolume_types.h bcachefs: is_ancestor bitmap 2023-10-22 17:10:07 -04:00
subvolume.c bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
subvolume.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
super_types.h bcachefs: Split out disk_groups_types.h 2023-10-31 12:18:37 -04:00
super-io.c bcachefs: bch2_prt_datetime() 2023-11-05 13:12:08 -05:00
super-io.h bcachefs: bch_sb_field_errors 2023-11-01 21:11:08 -04:00
super.c bcachefs: Convert bch2_fs_open() to darray 2023-11-05 13:12:17 -05:00
super.h bcachefs: sb-members.c 2023-10-22 17:10:10 -04:00
sysfs.c Second bcachefs pull request for 6.7-rc1 2023-11-07 11:38:38 -08:00
sysfs.h
tests.c bcachefs: bch_err_msg(), bch_err_fn() now filters out transaction restart errors 2023-10-22 17:10:15 -04:00
tests.h
trace.c bcachefs: move: move_stats refactoring 2023-10-31 12:18:38 -04:00
trace.h bcachefs: Don't downgrade locks on transaction restart 2023-11-01 21:11:08 -04:00
two_state_shared_lock.c
two_state_shared_lock.h
util.c bcachefs: bch2_prt_datetime() 2023-11-05 13:12:08 -05:00
util.h bcachefs: bch2_prt_datetime() 2023-11-05 13:12:08 -05:00
varint.c bcachefs: Fix W=12 build errors 2023-10-22 17:10:13 -04:00
varint.h
vstructs.h bcachefs: Array bounds fixes 2023-10-22 17:10:12 -04:00
xattr.c bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00
xattr.h bcachefs: Enumerate fsck errors 2023-11-01 21:11:08 -04:00