From cf67f46641abd71ec9c1e4b55481928c50975804 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Mon, 30 Dec 2024 16:22:59 -0500 Subject: [PATCH] bcachefs: __bch2_btree_pos_to_text() Factor out a version of bch2_btree_pos_to_text() that doesn't take a pointer to a in-memory btree node, to be used for btree node scrub. Signed-off-by: Kent Overstreet --- fs/bcachefs/btree_cache.c | 16 +++++++++++----- fs/bcachefs/btree_cache.h | 2 ++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/fs/bcachefs/btree_cache.c b/fs/bcachefs/btree_cache.c index b00c6a20be27..672ca2c1d37d 100644 --- a/fs/bcachefs/btree_cache.c +++ b/fs/bcachefs/btree_cache.c @@ -1402,18 +1402,24 @@ void bch2_btree_id_level_to_text(struct printbuf *out, enum btree_id btree, unsi prt_printf(out, " level=%u", level); } -void bch2_btree_pos_to_text(struct printbuf *out, struct bch_fs *c, const struct btree *b) +void __bch2_btree_pos_to_text(struct printbuf *out, struct bch_fs *c, + enum btree_id btree, unsigned level, struct bkey_s_c k) { - bch2_btree_id_to_text(out, b->c.btree_id); - prt_printf(out, " level %u/", b->c.level); - struct btree_root *r = bch2_btree_id_root(c, b->c.btree_id); + bch2_btree_id_to_text(out, btree); + prt_printf(out, " level %u/", level); + struct btree_root *r = bch2_btree_id_root(c, btree); if (r) prt_printf(out, "%u", r->level); else prt_printf(out, "(unknown)"); prt_printf(out, "\n "); - bch2_bkey_val_to_text(out, c, bkey_i_to_s_c(&b->key)); + bch2_bkey_val_to_text(out, c, k); +} + +void bch2_btree_pos_to_text(struct printbuf *out, struct bch_fs *c, const struct btree *b) +{ + __bch2_btree_pos_to_text(out, c, b->c.btree_id, b->c.level, bkey_i_to_s_c(&b->key)); } void bch2_btree_node_to_text(struct printbuf *out, struct bch_fs *c, const struct btree *b) diff --git a/fs/bcachefs/btree_cache.h b/fs/bcachefs/btree_cache.h index dcc34fe4996d..ca3c1b145330 100644 --- a/fs/bcachefs/btree_cache.h +++ b/fs/bcachefs/btree_cache.h @@ -147,6 +147,8 @@ const char *bch2_btree_id_str(enum btree_id); /* avoid */ void bch2_btree_id_to_text(struct printbuf *, enum btree_id); void bch2_btree_id_level_to_text(struct printbuf *, enum btree_id, unsigned); +void __bch2_btree_pos_to_text(struct printbuf *, struct bch_fs *, + enum btree_id, unsigned, struct bkey_s_c); void bch2_btree_pos_to_text(struct printbuf *, struct bch_fs *, const struct btree *); void bch2_btree_node_to_text(struct printbuf *, struct bch_fs *, const struct btree *); void bch2_btree_cache_to_text(struct printbuf *, const struct btree_cache *); -- 2.25.1