diff options
-rw-r--r-- | drivers/md/bcache/bkey_methods.c | 10 | ||||
-rw-r--r-- | drivers/md/bcache/bkey_methods.h | 2 | ||||
-rw-r--r-- | drivers/md/bcache/btree_cache.c | 5 |
3 files changed, 17 insertions, 0 deletions
diff --git a/drivers/md/bcache/bkey_methods.c b/drivers/md/bcache/bkey_methods.c index 3bcd0e041b03..90f7e5f74657 100644 --- a/drivers/md/bcache/bkey_methods.c +++ b/drivers/md/bcache/bkey_methods.c @@ -89,6 +89,16 @@ void bkey_debugcheck(struct cache_set *c, struct btree *b, struct bkey_s_c k) ops->key_debugcheck(c, b, k); } +void bch_val_to_text(struct cache_set *c, enum bkey_type type, + char *buf, size_t size, struct bkey_s_c k) +{ + const struct bkey_ops *ops = bch_bkey_ops[type]; + + if (k.k->type >= KEY_TYPE_GENERIC_NR && + ops->val_to_text) + ops->val_to_text(c, buf, size, k); +} + void bch_bkey_val_to_text(struct cache_set *c, enum bkey_type type, char *buf, size_t size, struct bkey_s_c k) { diff --git a/drivers/md/bcache/bkey_methods.h b/drivers/md/bcache/bkey_methods.h index 0e305ebc02cb..c1f0dc539078 100644 --- a/drivers/md/bcache/bkey_methods.h +++ b/drivers/md/bcache/bkey_methods.h @@ -67,6 +67,8 @@ const char *btree_bkey_invalid(struct cache_set *, struct btree *, struct bkey_s_c); void bkey_debugcheck(struct cache_set *, struct btree *, struct bkey_s_c); +void bch_val_to_text(struct cache_set *, enum bkey_type, + char *, size_t, struct bkey_s_c); void bch_bkey_val_to_text(struct cache_set *, enum bkey_type, char *, size_t, struct bkey_s_c); diff --git a/drivers/md/bcache/btree_cache.c b/drivers/md/bcache/btree_cache.c index 7b75c1db6388..ca6064af2786 100644 --- a/drivers/md/bcache/btree_cache.c +++ b/drivers/md/bcache/btree_cache.c @@ -706,13 +706,17 @@ int bch_print_btree_node(struct cache_set *c, struct btree *b, { const struct bkey_format *f = &b->format; struct bset_stats stats; + char ptrs[100]; memset(&stats, 0, sizeof(stats)); + bch_val_to_text(c, BKEY_TYPE_BTREE, ptrs, sizeof(ptrs), + bkey_i_to_s_c(&b->key)); bch_btree_keys_stats(b, &stats); return scnprintf(buf, len, "l %u %llu:%llu - %llu:%llu:\n" + " ptrs: %s\n" " format: u64s %u fields %u %u %u %u %u\n" " unpack fn len: %u\n" " bytes used %zu/%zu (%zu%% full)\n" @@ -728,6 +732,7 @@ int bch_print_btree_node(struct cache_set *c, struct btree *b, b->data->min_key.offset, b->data->max_key.inode, b->data->max_key.offset, + ptrs, f->key_u64s, f->bits_per_field[0], f->bits_per_field[1], |