Commit 8570d775 authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet
Browse files

bcachefs: bch2_trans_updates_to_text()



This turns bch2_dump_trans_updates() into a to_text() method - this way
it can be used by debug tracing.

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 2158fe46
Loading
Loading
Loading
Loading
+28 −14
Original line number Diff line number Diff line
@@ -1793,30 +1793,44 @@ void bch2_path_put(struct btree_trans *trans, struct btree_path *path, bool inte
	__bch2_path_free(trans, path);
}

noinline __cold
void bch2_dump_trans_updates(struct btree_trans *trans)
void bch2_trans_updates_to_text(struct printbuf *buf, struct btree_trans *trans)
{
	struct btree_insert_entry *i;
	struct printbuf buf1 = PRINTBUF, buf2 = PRINTBUF;

	bch_err(trans->c, "transaction updates:");
	pr_buf(buf, "transaction updates for %s journal seq %llu",
	       trans->fn, trans->journal_res.seq);
	pr_newline(buf);
	pr_indent_push(buf, 2);

	trans_for_each_update(trans, i) {
		struct bkey_s_c old = { &i->old_k, i->old_v };

		printbuf_reset(&buf1);
		printbuf_reset(&buf2);
		bch2_bkey_val_to_text(&buf1, trans->c, old);
		bch2_bkey_val_to_text(&buf2, trans->c, bkey_i_to_s_c(i->k));

		printk(KERN_ERR "update: btree %s %pS\n  old %s\n  new %s",
		pr_buf(buf, "update: btree=%s cached=%u %pS",
		       bch2_btree_ids[i->btree_id],
		       (void *) i->ip_allocated,
		       buf1.buf, buf2.buf);
		       i->cached,
		       (void *) i->ip_allocated);
		pr_newline(buf);

		pr_buf(buf, "  old ");
		bch2_bkey_val_to_text(buf, trans->c, old);
		pr_newline(buf);

		pr_buf(buf, "  new ");
		bch2_bkey_val_to_text(buf, trans->c, bkey_i_to_s_c(i->k));
		pr_newline(buf);
	}

	printbuf_exit(&buf2);
	printbuf_exit(&buf1);
	pr_indent_pop(buf, 2);
}

noinline __cold
void bch2_dump_trans_updates(struct btree_trans *trans)
{
	struct printbuf buf = PRINTBUF;

	bch2_trans_updates_to_text(&buf, trans);
	bch_err(trans->c, "%s", buf.buf);
	printbuf_exit(&buf);
}

noinline __cold
+1 −0
Original line number Diff line number Diff line
@@ -425,6 +425,7 @@ __bch2_btree_iter_peek_and_restart(struct btree_trans *trans,

/* new multiple iterator interface: */

void bch2_trans_updates_to_text(struct printbuf *, struct btree_trans *);
void bch2_dump_trans_updates(struct btree_trans *);
void bch2_dump_trans_paths_updates(struct btree_trans *);
void __bch2_trans_init(struct btree_trans *, struct bch_fs *,