Commit e6b3a655 authored by Kent Overstreet's avatar Kent Overstreet
Browse files

bcachefs: Use bch2_print_string_as_lines for long err



printk strings get truncated to 1024 bytes; if we have a long error
message (journal debug info) we need to use a helper.

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent dd908648
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -1967,7 +1967,6 @@ CLOSURE_CALLBACK(bch2_journal_write)
	struct journal *j = container_of(w, struct journal, buf[w->idx]);
	struct bch_fs *c = container_of(j, struct bch_fs, journal);
	struct bch_replicas_padded replicas;
	struct printbuf journal_debug_buf = PRINTBUF;
	unsigned nr_rw_members = 0;
	int ret;

@@ -2011,11 +2010,15 @@ CLOSURE_CALLBACK(bch2_journal_write)
	}

	if (ret) {
		__bch2_journal_debug_to_text(&journal_debug_buf, j);
		struct printbuf buf = PRINTBUF;
		buf.atomic++;

		prt_printf(&buf, bch2_fmt(c, "Unable to allocate journal write: %s"),
			   bch2_err_str(ret));
		__bch2_journal_debug_to_text(&buf, j);
		spin_unlock(&j->lock);
		bch_err(c, "Unable to allocate journal write:\n%s",
			journal_debug_buf.buf);
		printbuf_exit(&journal_debug_buf);
		bch2_print_string_as_lines(KERN_ERR, buf.buf);
		printbuf_exit(&buf);
		goto err;
	}