From 5f0de475f967a094bd596913ffbe9ad9b33b4e3a Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Mon, 21 Apr 2025 12:04:10 -0400 Subject: [PATCH] bcachefs: bch2_bio_to_text() Pretty printer for struct bio, to be used for async object debugging. This is pretty minimal, we'll add more to it as we discover what we need. Signed-off-by: Kent Overstreet --- fs/bcachefs/util.c | 10 ++++++++++ fs/bcachefs/util.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/fs/bcachefs/util.c b/fs/bcachefs/util.c index 6e5d7fc265bd..7e6ebe8cd9ea 100644 --- a/fs/bcachefs/util.c +++ b/fs/bcachefs/util.c @@ -715,6 +715,16 @@ void bch2_corrupt_bio(struct bio *bio) } #endif +void bch2_bio_to_text(struct printbuf *out, struct bio *bio) +{ + prt_printf(out, "bi_remaining:\t%u\n", + atomic_read(&bio->__bi_remaining)); + prt_printf(out, "bi_end_io:\t%ps\n", + bio->bi_end_io); + prt_printf(out, "bi_status:\t%u\n", + bio->bi_status); +} + #if 0 void eytzinger1_test(void) { diff --git a/fs/bcachefs/util.h b/fs/bcachefs/util.h index 50f7197c67fc..7a93e187a49a 100644 --- a/fs/bcachefs/util.h +++ b/fs/bcachefs/util.h @@ -419,6 +419,8 @@ static inline void bch2_maybe_corrupt_bio(struct bio *bio, unsigned ratio) #define bch2_maybe_corrupt_bio(...) do {} while (0) #endif +void bch2_bio_to_text(struct printbuf *, struct bio *); + static inline void memcpy_u64s_small(void *dst, const void *src, unsigned u64s) { -- 2.50.1