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: Kent Overstreet <kent.overstreet@linux.dev>
Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
Fixes: 19da6b2c9e ("dm-flakey: Clean up parsing messages")
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
This commit is contained in:
Kent Overstreet
2025-06-11 15:12:20 -04:00
committed by Mikulas Patocka
parent 8ca719b819
commit 75227ed681

View File

@@ -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;
}