diff options
author | Chengguang Xu <cgxu519@gmx.com> | 2018-06-27 21:05:08 +0800 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2018-08-02 21:26:11 +0200 |
commit | 17173c82e3daa28742bf7732520e9bc2e0cb977d (patch) | |
tree | 06f1d1ec84aae800a65c6c7b9ce46680ee533560 /net/ceph | |
parent | c9ed51c9123ab5e8f79b7d53a9afd786b43d4fe6 (diff) | |
download | linux-stable-17173c82e3daa28742bf7732520e9bc2e0cb977d.tar.gz linux-stable-17173c82e3daa28742bf7732520e9bc2e0cb977d.tar.bz2 linux-stable-17173c82e3daa28742bf7732520e9bc2e0cb977d.zip |
libceph: stop parsing when a bad int arg is detected
There is no reason to continue option parsing after detecting
bad option.
[ Return match_int() errors from ceph_parse_options() to match the
behaviour of parse_rbd_opts_token() and parse_fsopt_token(). ]
Signed-off-by: Chengguang Xu <cgxu519@gmx.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'net/ceph')
-rw-r--r-- | net/ceph/ceph_common.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/ceph/ceph_common.c b/net/ceph/ceph_common.c index 584fdbef2088..1677a6132034 100644 --- a/net/ceph/ceph_common.c +++ b/net/ceph/ceph_common.c @@ -379,7 +379,7 @@ ceph_parse_options(char *options, const char *dev_name, /* parse mount options */ while ((c = strsep(&options, ",")) != NULL) { - int token, intval, ret; + int token, intval; if (!*c) continue; err = -EINVAL; @@ -394,11 +394,11 @@ ceph_parse_options(char *options, const char *dev_name, continue; } if (token < Opt_last_int) { - ret = match_int(&argstr[0], &intval); - if (ret < 0) { + err = match_int(&argstr[0], &intval); + if (err < 0) { pr_err("bad mount option arg (not int) " "at '%s'\n", c); - continue; + goto out; } dout("got int token %d val %d\n", token, intval); } else if (token > Opt_last_int && token < Opt_last_string) { |