]> git.dujemihanovic.xyz Git - linux.git/commitdiff
bcachefs: Use bch2_print_string_as_lines for long err
authorKent Overstreet <kent.overstreet@linux.dev>
Thu, 20 Jun 2024 17:10:34 +0000 (13:10 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Fri, 21 Jun 2024 14:17:07 +0000 (10:17 -0400)
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: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/journal_io.c

index cdcb1ad49af42e7febf88adc0987ee7dfede42f3..492426c8d869ac178ccb20655314fedab75e8905 100644 (file)
@@ -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;
        }