From: Pan Liu Date: Sun, 3 Sep 2017 04:12:15 +0000 (+0800) Subject: rbd-nbd: fix generic option issue X-Git-Tag: v12.2.1~58^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F17557%2Fhead;p=ceph.git rbd-nbd: fix generic option issue Fixes: http://tracker.ceph.com/issues/20426 Signed-off-by: Pan Liu (cherry picked from commit 16f64a4c01068603736af476f640268d0baa338d) --- diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc index e892fbd5ac0f..b566489071c9 100644 --- a/src/tools/rbd_nbd/rbd-nbd.cc +++ b/src/tools/rbd_nbd/rbd-nbd.cc @@ -924,15 +924,27 @@ static int do_list_mapped_devices() static int parse_args(vector& args, std::ostream *err_msg, Config *cfg) { - std::vector::iterator i; - std::ostringstream err; + std::string conf_file_list; + std::string cluster; + CephInitParameters iparams = ceph_argparse_early_args( + args, CEPH_ENTITY_TYPE_CLIENT, &cluster, &conf_file_list); md_config_t config; - config.parse_config_files(nullptr, nullptr, 0); + config.name = iparams.name; + config.cluster = cluster; + + if (!conf_file_list.empty()) { + config.parse_config_files(conf_file_list.c_str(), nullptr, 0); + } else { + config.parse_config_files(nullptr, nullptr, 0); + } config.parse_env(); config.parse_argv(args); cfg->poolname = config.rbd_default_pool; + std::vector::iterator i; + std::ostringstream err; + for (i = args.begin(); i != args.end(); ) { if (ceph_argparse_flag(args, i, "-h", "--help", (char*)NULL)) { return HELP_INFO;