Commit d704d623 authored by Kent Overstreet's avatar Kent Overstreet

bcachefs: btree_err() now uses bch2_print_string_as_lines()

We've seen long error messages get truncated here, so convert to the new
bch2_print_string_as_lines().
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent dbb9936b
...@@ -507,9 +507,11 @@ static void btree_err_msg(struct printbuf *out, struct bch_fs *c, ...@@ -507,9 +507,11 @@ static void btree_err_msg(struct printbuf *out, struct bch_fs *c,
struct btree *b, struct bset *i, struct btree *b, struct bset *i,
unsigned offset, int write) unsigned offset, int write)
{ {
prt_printf(out, "error validating btree node "); prt_printf(out, bch2_log_msg(c, ""));
if (write) if (!write)
prt_printf(out, "before write "); prt_str(out, "error validating btree node ");
else
prt_str(out, "corrupt btree node before write ");
if (ca) if (ca)
prt_printf(out, "on %s ", ca->name); prt_printf(out, "on %s ", ca->name);
prt_printf(out, "at btree "); prt_printf(out, "at btree ");
...@@ -518,6 +520,7 @@ static void btree_err_msg(struct printbuf *out, struct bch_fs *c, ...@@ -518,6 +520,7 @@ static void btree_err_msg(struct printbuf *out, struct bch_fs *c,
prt_printf(out, "\n node offset %u", b->written); prt_printf(out, "\n node offset %u", b->written);
if (i) if (i)
prt_printf(out, " bset u64s %u", le16_to_cpu(i->u64s)); prt_printf(out, " bset u64s %u", le16_to_cpu(i->u64s));
prt_str(out, ": ");
} }
enum btree_err_type { enum btree_err_type {
...@@ -537,7 +540,7 @@ enum btree_validate_ret { ...@@ -537,7 +540,7 @@ enum btree_validate_ret {
struct printbuf out = PRINTBUF; \ struct printbuf out = PRINTBUF; \
\ \
btree_err_msg(&out, c, ca, b, i, b->written, write); \ btree_err_msg(&out, c, ca, b, i, b->written, write); \
prt_printf(&out, ": " msg, ##__VA_ARGS__); \ prt_printf(&out, msg, ##__VA_ARGS__); \
\ \
if (type == BTREE_ERR_FIXABLE && \ if (type == BTREE_ERR_FIXABLE && \
write == READ && \ write == READ && \
...@@ -546,10 +549,10 @@ enum btree_validate_ret { ...@@ -546,10 +549,10 @@ enum btree_validate_ret {
goto out; \ goto out; \
} \ } \
\ \
bch2_print_string_as_lines(KERN_ERR, out.buf); \
\
switch (write) { \ switch (write) { \
case READ: \ case READ: \
bch_err(c, "%s", out.buf); \
\
switch (type) { \ switch (type) { \
case BTREE_ERR_FIXABLE: \ case BTREE_ERR_FIXABLE: \
ret = -BCH_ERR_fsck_errors_not_fixed; \ ret = -BCH_ERR_fsck_errors_not_fixed; \
...@@ -569,8 +572,6 @@ enum btree_validate_ret { ...@@ -569,8 +572,6 @@ enum btree_validate_ret {
} \ } \
break; \ break; \
case WRITE: \ case WRITE: \
bch_err(c, "corrupt metadata before write: %s", out.buf);\
\
if (bch2_fs_inconsistent(c)) { \ if (bch2_fs_inconsistent(c)) { \
ret = -BCH_ERR_fsck_errors_not_fixed; \ ret = -BCH_ERR_fsck_errors_not_fixed; \
goto fsck_err; \ goto fsck_err; \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment