bcachefs: Add (partial) support for fixing btree topology
authorKent Overstreet <kent.overstreet@gmail.com>
Wed, 27 Jan 2021 01:59:00 +0000 (20:59 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:52 +0000 (17:08 -0400)
commita0b73c1c5363f5e2cd9a7a7968a9d6579548050a
treed151045ec7a48f196eb135b1c5491f9939fe6155
parent5b593ee172bd536a2c9fd717de7e4a16d682ef23
bcachefs: Add (partial) support for fixing btree topology

When we walk the btrees during recovery, part of that is checking that
btree topology is correct: for every interior btree node, its child
nodes should exactly span the range the parent node covers.

Previously, we had checks for this, but not repair code. Now that we
have the ability to do btree updates during initial GC, this patch adds
that repair code.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bcachefs.h
fs/bcachefs/btree_cache.c
fs/bcachefs/btree_cache.h
fs/bcachefs/btree_gc.c
fs/bcachefs/recovery.c