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 <himi...@gmail.com> --- 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