summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_cache.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/btree_cache.c')
-rw-r--r--libbcachefs/btree_cache.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/libbcachefs/btree_cache.c b/libbcachefs/btree_cache.c
index 1aacd271..ed448276 100644
--- a/libbcachefs/btree_cache.c
+++ b/libbcachefs/btree_cache.c
@@ -712,26 +712,24 @@ static int lock_node_check_fn(struct six_lock *lock, void *p)
static noinline void btree_bad_header(struct bch_fs *c, struct btree *b)
{
- char buf1[100], buf2[100], buf3[100], buf4[100];
+ char buf1[200], buf2[100], buf3[100];
if (!test_bit(BCH_FS_INITIAL_GC_DONE, &c->flags))
return;
- bch2_bpos_to_text(&PBUF(buf1), b->key.k.type == KEY_TYPE_btree_ptr_v2
- ? bkey_i_to_btree_ptr_v2(&b->key)->v.min_key
- : POS_MIN);
- bch2_bpos_to_text(&PBUF(buf2), b->data->min_key);
+ bch2_bkey_val_to_text(&PBUF(buf1), c, bkey_i_to_s_c(&b->key));
+ bch2_bpos_to_text(&PBUF(buf3), b->data->max_key);
- bch2_bpos_to_text(&PBUF(buf3), b->key.k.p);
- bch2_bpos_to_text(&PBUF(buf4), b->data->max_key);
bch2_fs_inconsistent(c, "btree node header doesn't match ptr\n"
- "btree: ptr %u header %llu\n"
- "level: ptr %u header %llu\n"
- "min ptr %s node header %s\n"
- "max ptr %s node header %s",
- b->c.btree_id, BTREE_NODE_ID(b->data),
- b->c.level, BTREE_NODE_LEVEL(b->data),
- buf1, buf2, buf3, buf4);
+ "btree %s level %u\n"
+ "ptr: %s\n"
+ "header: btree %s level %llu\n"
+ "min %s max %s\n",
+ bch2_btree_ids[b->c.btree_id], b->c.level,
+ buf1,
+ bch2_btree_ids[BTREE_NODE_ID(b->data)],
+ BTREE_NODE_LEVEL(b->data),
+ buf2, buf3);
}
static inline void btree_check_header(struct bch_fs *c, struct btree *b)