diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-07-13 00:42:01 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-07-13 00:42:01 -0400 |
commit | 39f27a145b150b997d57d97e572eb3ad9ab4e75c (patch) | |
tree | b0c7520d5d99a94fefac2973e90629ae4799166d | |
parent | 9e3c703af0b911a7319356a00ef26ab86aef0b43 (diff) |
Update bcachefs sources to e9a4628edd fixup! bcachefs: btree node scan: fall back to comparing by journal seq
-rw-r--r-- | libbcachefs/btree_node_scan.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libbcachefs/btree_node_scan.c b/libbcachefs/btree_node_scan.c index 3d634134..3fab41b8 100644 --- a/libbcachefs/btree_node_scan.c +++ b/libbcachefs/btree_node_scan.c @@ -336,6 +336,28 @@ again: found_btree_node_to_text(&buf, c, n); bch_err(c, "%s", buf.buf); printbuf_exit(&buf); + + struct { __BKEY_PADDED(k, BKEY_BTREE_PTR_VAL_U64s_MAX); } tmp; + struct btree *b; + + struct btree_trans *trans = bch2_trans_get(c); + + found_btree_node_to_key(&tmp.k, start); + b = bch2_btree_node_get_noiter(trans, &tmp.k, + start->btree_id, start->level, false); + if (!IS_ERR_OR_NULL(b)) { + bch2_dump_btree_node(c, b); + six_unlock_read(&b->c.lock); + } + + found_btree_node_to_key(&tmp.k, n); + b = bch2_btree_node_get_noiter(trans, &tmp.k, + start->btree_id, start->level, false); + if (!IS_ERR_OR_NULL(b)) { + bch2_dump_btree_node(c, b); + six_unlock_read(&b->c.lock); + } + bch2_trans_put(trans); return -BCH_ERR_fsck_repair_unimplemented; } } |