Commit 570f5050 authored by Bharadwaj Raju's avatar Bharadwaj Raju Committed by Kent Overstreet
Browse files

bcachefs: use nonblocking variant of print_string_as_lines in error path



The inconsistency error path calls print_string_as_lines, which calls
console_lock, which is a potentially-sleeping function and so can't be
called in an atomic context.

Replace calls to it with the nonblocking variant which is safe to call.

Signed-off-by: default avatarBharadwaj Raju <bharadwaj.raju777@gmail.com>
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent b2ffadcc
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ bool __bch2_inconsistent_error(struct bch_fs *c, struct printbuf *out)
				   journal_cur_seq(&c->journal));
		return true;
	case BCH_ON_ERROR_panic:
		bch2_print_string_as_lines(KERN_ERR, out->buf);
		bch2_print_string_as_lines_nonblocking(KERN_ERR, out->buf);
		panic(bch2_fmt(c, "panic after error"));
		return true;
	default:
@@ -71,7 +71,7 @@ static bool bch2_fs_trans_inconsistent(struct bch_fs *c, struct btree_trans *tra
	if (trans)
		bch2_trans_updates_to_text(&buf, trans);
	bool ret = __bch2_inconsistent_error(c, &buf);
	bch2_print_string_as_lines(KERN_ERR, buf.buf);
	bch2_print_string_as_lines_nonblocking(KERN_ERR, buf.buf);

	printbuf_exit(&buf);
	return ret;