bcachefs: __bch2_btree_pos_to_text()
authorKent Overstreet <kent.overstreet@linux.dev>
Mon, 30 Dec 2024 21:22:59 +0000 (16:22 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Fri, 10 Jan 2025 04:38:42 +0000 (23:38 -0500)
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 <kent.overstreet@linux.dev>
fs/bcachefs/btree_cache.c
fs/bcachefs/btree_cache.h

index b00c6a20be27133cc27b3c2a650250912ba92c49..672ca2c1d37d28de231b1f02dbaf33b345c7de9d 100644 (file)
@@ -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)
index dcc34fe4996d5d118c66391d5a6236df814bdc08..ca3c1b145330e73c4ba3c5c452ce187732f81bab 100644 (file)
@@ -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 *);