Commit 75227ed6 authored by Kent Overstreet's avatar Kent Overstreet Committed by Mikulas Patocka
Browse files

dm-flakey: Fix corrupt_bio_byte setup checks



Fix the error_reads mode - it's incompatible with corrupt_bio_byte, but
that's only enabled if corrupt_bio_byte is nonzero.

Cc: Benjamin Marzinski <bmarzins@redhat.com>
Cc: Mikulas Patocka <mpatocka@redhat.com>
Cc: Mike Snitzer <snitzer@kernel.org>
Cc: dm-devel@lists.linux.dev
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
Reviewed-by: default avatarBenjamin Marzinski <bmarzins@redhat.com>
Fixes: 19da6b2c ("dm-flakey: Clean up parsing messages")
Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
parent 8ca719b8
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -215,16 +215,19 @@ static int parse_features(struct dm_arg_set *as, struct flakey_c *fc,
	}

	if (test_bit(DROP_WRITES, &fc->flags) &&
	    (fc->corrupt_bio_rw == WRITE || fc->random_write_corrupt)) {
	    ((fc->corrupt_bio_byte && fc->corrupt_bio_rw == WRITE) ||
	     fc->random_write_corrupt)) {
		ti->error = "drop_writes is incompatible with random_write_corrupt or corrupt_bio_byte with the WRITE flag set";
		return -EINVAL;

	} else if (test_bit(ERROR_WRITES, &fc->flags) &&
		   (fc->corrupt_bio_rw == WRITE || fc->random_write_corrupt)) {
		   ((fc->corrupt_bio_byte && fc->corrupt_bio_rw == WRITE) ||
		    fc->random_write_corrupt)) {
		ti->error = "error_writes is incompatible with random_write_corrupt or corrupt_bio_byte with the WRITE flag set";
		return -EINVAL;
	} else if (test_bit(ERROR_READS, &fc->flags) &&
		   (fc->corrupt_bio_rw == READ || fc->random_read_corrupt)) {
		   ((fc->corrupt_bio_byte && fc->corrupt_bio_rw == READ) ||
		    fc->random_read_corrupt)) {
		ti->error = "error_reads is incompatible with random_read_corrupt or corrupt_bio_byte with the READ flag set";
		return -EINVAL;
	}