summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/recovery.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-11-29 18:53:26 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2024-12-21 01:36:21 -0500
commitc1f618f4f7cc7b8360e7362d3d18f3e244ded364 (patch)
tree5d6cecbd34fb7f8ef6d3b8a01325e496f193e24f /fs/bcachefs/recovery.c
parentbcachefs: If we did repair on a btree node, make sure we rewrite it (diff)
downloadlinux-c1f618f4f7cc7b8360e7362d3d18f3e244ded364.tar.gz
linux-c1f618f4f7cc7b8360e7362d3d18f3e244ded364.zip
bcachefs: bch2_async_btree_node_rewrites_flush()
Add a method to flush btree node rewrites at the end of recovery, to ensure that corrected errors are persisted. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/recovery.c')
-rw-r--r--fs/bcachefs/recovery.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/bcachefs/recovery.c b/fs/bcachefs/recovery.c
index c50dede64785..a342744fd275 100644
--- a/fs/bcachefs/recovery.c
+++ b/fs/bcachefs/recovery.c
@@ -931,6 +931,8 @@ use_clean:
/* in case we don't run journal replay, i.e. norecovery mode */
set_bit(BCH_FS_accounting_replay_done, &c->flags);
+ bch2_async_btree_node_rewrites_flush(c);
+
/* fsync if we fixed errors */
if (test_bit(BCH_FS_errors_fixed, &c->flags)) {
bch2_journal_flush_all_pins(&c->journal);