On Wed, Jun 11, 2025 at 03:12:20PM -0400, Kent Overstreet wrote:
> 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 <[email protected]>
> Cc: Mikulas Patocka <[email protected]>
> Cc: Mike Snitzer <[email protected]>
> Cc: [email protected]
> Signed-off-by: Kent Overstreet <[email protected]>
Also, I see that you guys still aren't testing your changes properly.
> ---
> drivers/md/dm-flakey.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/md/dm-flakey.c b/drivers/md/dm-flakey.c
> index c711db6f8f5c..cf17fd46e255 100644
> --- a/drivers/md/dm-flakey.c
> +++ b/drivers/md/dm-flakey.c
> @@ -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;
> }
> --
> 2.49.0
>