From: Goldwyn Rodrigues <[email protected]>

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 <[email protected]>
---
 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
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel

Reply via email to