Skip to content

Commit 9fe8ec8

Browse files
author
Kent Overstreet
committed
bcachefs: Don't build aux search tree when still repairing node
bch2_btree_node_drop_keys_outside_node() will (re)build aux search trees, because it's also called by topology repair. bch2_btree_node_read_done() was calling it before validating individual keys; invalid ones have to be dropped. If we call drop_keys_outside_node() first, then bch2_bset_build_aux_tree() doesn't run because the node already has an aux search tree - which was invalidated by the repair. Reported-by: [email protected] Signed-off-by: Kent Overstreet <[email protected]>
1 parent 6a1c432 commit 9fe8ec8

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

fs/bcachefs/btree_io.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1295,9 +1295,6 @@ int bch2_btree_node_read_done(struct bch_fs *c, struct bch_dev *ca,
12951295

12961296
btree_bounce_free(c, btree_buf_bytes(b), used_mempool, sorted);
12971297

1298-
if (updated_range)
1299-
bch2_btree_node_drop_keys_outside_node(b);
1300-
13011298
i = &b->data->keys;
13021299
for (k = i->start; k != vstruct_last(i);) {
13031300
struct bkey tmp;
@@ -1335,6 +1332,9 @@ int bch2_btree_node_read_done(struct bch_fs *c, struct bch_dev *ca,
13351332

13361333
btree_node_reset_sib_u64s(b);
13371334

1335+
if (updated_range)
1336+
bch2_btree_node_drop_keys_outside_node(b);
1337+
13381338
/*
13391339
* XXX:
13401340
*

0 commit comments

Comments
 (0)