bkey validation is done at btree node read time, where repair just means "drop it from the in memory btree node" - persisting that repair means kicking off an async btree node rewrite, which wasn't always happening.
this fixes, among other things, the "disk accounting key with version=0" errors that kept popping up despite the log saying it'd been fixed Kent Overstreet (4): bcachefs: list_pop_entry() bcachefs: bkey_fsck_err now respects errors_silent bcachefs: If we did repair on a btree node, make sure we rewrite it bcachefs: bch2_async_btree_node_rewrites_flush() fs/bcachefs/bcachefs.h | 7 +- fs/bcachefs/btree_io.c | 19 ++-- fs/bcachefs/btree_update_interior.c | 153 ++++++++++++++++------------ fs/bcachefs/btree_update_interior.h | 1 + fs/bcachefs/ec.c | 6 +- fs/bcachefs/error.c | 12 ++- fs/bcachefs/io_write.c | 4 +- fs/bcachefs/recovery.c | 2 + fs/bcachefs/util.h | 13 +++ 9 files changed, 135 insertions(+), 82 deletions(-) -- 2.45.2
