bcachefs: Fix check_topology() when using node scan
authorKent Overstreet <kent.overstreet@linux.dev>
Tue, 9 Apr 2024 04:02:47 +0000 (00:02 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Tue, 9 Apr 2024 04:04:57 +0000 (00:04 -0400)
shoot down journal keys _before_ populating journal keys with pointers
to scanned nodes

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

index 6280da1244b55032beaf60c4e2b29df0ff2c3152..a1c2c0ffb0cc62e80511bf782b6debf4fa676659 100644 (file)
@@ -544,12 +544,12 @@ reconstruct_root:
                                bch2_btree_root_alloc_fake(c, i, 0);
                        } else {
                                bch2_btree_root_alloc_fake(c, i, 1);
+                               bch2_shoot_down_journal_keys(c, i, 1, BTREE_MAX_DEPTH, POS_MIN, SPOS_MAX);
                                ret = bch2_get_scanned_nodes(c, i, 0, POS_MIN, SPOS_MAX);
                                if (ret)
                                        break;
                        }
 
-                       bch2_shoot_down_journal_keys(c, i, 1, BTREE_MAX_DEPTH, POS_MIN, SPOS_MAX);
                        reconstructed_root = true;
                }