This patch series introduces new per-btree accounting counters and uses
them for (hopefully) accurate progress reporting in recovery passes.
Also includes various assorted bugfixes.
The first commit ("Relax restrictions on the number of accounting
counters") is optional, but will likely greatly improve the
upgrade/tools version mismatch experience. Without it, all bree usage
accounting will be thrown out and rebuilt on any version mismatch.
The second commit has the format change but does not contain the
upgrade/downgrade table entries. It is intended to be integrated
together with other accounting changes in a single version upgrade.
The last four commits are drive-by fixes/improvements, especially
"Improve check_allocations pass speed not in fsck", which should make
the future accounting upgrades much faster.
Signed-off-by: Nikita Ofitserov <[email protected]>
---
Nikita Ofitserov (12):
bcachefs: Relax restrictions on the number of accounting counters
bcachefs: Introduce btree node number accounting
bcachefs: Use explicit node counts in progress reporting
bcachefs: Introduce btree_leaf_has_triggers_mask
bcachefs: Better progress reporting for btree iteration without leaves
bcachefs: Refactor/rename btree_type_has_ptrs
bcachefs: More accurate progress reporting for inner node iteration
bcachefs: Fix progress reporting for unknown btrees
bcachefs: Partially fix old device removal with unknown btrees
bcachefs: Improve check_allocations pass speed not in fsck
bcachefs: Fix missing c->usage updates from early recovery
bcachefs: Fix online hidden (sb+journal) data accounting
fs/bcachefs/backpointers.c | 6 ++++--
fs/bcachefs/btree_gc.c | 28 ++++++++++++++++--------
fs/bcachefs/btree_trans_commit.c | 3 +++
fs/bcachefs/btree_types.h | 11 ++++++----
fs/bcachefs/buckets.c | 16 +++++++++-----
fs/bcachefs/disk_accounting.c | 23 ++++++++++++++------
fs/bcachefs/disk_accounting.h | 14 +++++++-----
fs/bcachefs/disk_accounting_format.h | 10 ++++++++-
fs/bcachefs/migrate.c | 18 ++++++++++------
fs/bcachefs/move.c | 2 +-
fs/bcachefs/progress.c | 41 ++++++++++++++++++++++++++++++------
fs/bcachefs/progress.h | 12 ++++++++++-
12 files changed, 136 insertions(+), 48 deletions(-)
---
base-commit: 8bf9cabd6109efc82bdccf6c450102d0be3ed3da
change-id: 20250826-better-progress-835d946a3c38
Best regards,
--
Nikita Ofitserov