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


Reply via email to