Commit 7dfd42a0 authored by Kent Overstreet's avatar Kent Overstreet
Browse files

bcachefs: Don't print data read retry success on non-errors



We may end up in the data read retry path when reading cached data and
racing with invalidation, or on checksum error when we were reading into
a userspace buffer that might have been modified while the read was in
flight.

These aren't real errors, so we shouldn't print the 'retry success'
message.

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 806776ad
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -487,6 +487,8 @@ static void bch2_rbio_retry(struct work_struct *work)
		.inum	= rbio->read_pos.inode,
	};
	struct bch_io_failures failed = { .nr = 0 };
	int orig_error = rbio->ret;

	struct btree_trans *trans = bch2_trans_get(c);

	trace_io_read_retry(&rbio->bio);
@@ -519,7 +521,9 @@ static void bch2_rbio_retry(struct work_struct *work)
	if (ret) {
		rbio->ret = ret;
		rbio->bio.bi_status = BLK_STS_IOERR;
	} else {
	} else if (orig_error != -BCH_ERR_data_read_retry_csum_err_maybe_userspace &&
		   orig_error != -BCH_ERR_data_read_ptr_stale_race &&
		   !failed.nr) {
		struct printbuf buf = PRINTBUF;

		lockrestart_do(trans,