From: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx> Since arguments are divided in argument sets, using argc fails corrupt_bio_byte because it is zero. We should be using as->argc to check the number of arguments. Signed-off-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx> --- drivers/md/dm-flakey.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/md/dm-flakey.c b/drivers/md/dm-flakey.c index b82cb1ab1eaa..e18c29672a88 100644 --- a/drivers/md/dm-flakey.c +++ b/drivers/md/dm-flakey.c @@ -105,7 +105,7 @@ static int parse_features(struct dm_arg_set *as, struct flakey_c *fc, * corrupt_bio_byte <Nth_byte> <direction> <value> <bio_flags> */ if (!strcasecmp(arg_name, "corrupt_bio_byte")) { - if (!argc) { + if (as->argc < 4) { ti->error = "Feature corrupt_bio_byte requires parameters"; return -EINVAL; } @@ -113,7 +113,6 @@ static int parse_features(struct dm_arg_set *as, struct flakey_c *fc, r = dm_read_arg(_args + 1, as, &fc->corrupt_bio_byte, &ti->error); if (r) return r; - argc--; /* * Direction r or w? @@ -127,7 +126,6 @@ static int parse_features(struct dm_arg_set *as, struct flakey_c *fc, ti->error = "Invalid corrupt bio direction (r or w)"; return -EINVAL; } - argc--; /* * Value of byte (0-255) to write in place of correct one. @@ -135,7 +133,6 @@ static int parse_features(struct dm_arg_set *as, struct flakey_c *fc, r = dm_read_arg(_args + 2, as, &fc->corrupt_bio_value, &ti->error); if (r) return r; - argc--; /* * Only corrupt bios with these flags set. @@ -143,7 +140,6 @@ static int parse_features(struct dm_arg_set *as, struct flakey_c *fc, r = dm_read_arg(_args + 3, as, &fc->corrupt_bio_flags, &ti->error); if (r) return r; - argc--; continue; } -- 2.14.2 -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel