From ffc76edbbea3a55876fcd91d10db4ce38b27cac6 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Mon, 27 Mar 2023 16:25:15 -0400 Subject: [PATCH] bcachefs: Fix bch2_verify_bucket_evacuated() We were going into an infinite loop when printing out backpointers, due to never incrementing bp_offset - whoops. Also limit the number of backpointers we print to 10; this is debug code and we only need to print a sample, not all of them. Signed-off-by: Kent Overstreet --- fs/bcachefs/move.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c index ff4a74de728d..9717fdce3ba5 100644 --- a/fs/bcachefs/move.c +++ b/fs/bcachefs/move.c @@ -627,6 +627,7 @@ void bch2_verify_bucket_evacuated(struct btree_trans *trans, struct bpos bucket, struct printbuf buf = PRINTBUF; struct bch_backpointer bp; u64 bp_offset = 0; + unsigned nr_bps = 0; int ret; bch2_trans_begin(trans); @@ -688,6 +689,10 @@ failed_to_evacuate: prt_newline(&buf); bch2_bkey_val_to_text(&buf, c, k); bch2_trans_iter_exit(trans, &iter); + + if (++nr_bps > 10) + break; + bp_offset++; } bch2_print_string_as_lines(KERN_ERR, buf.buf);