]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
fabrics: Do not return in the middle of the subcommand
authorMinwoo Im <minwoo.im.dev@gmail.com>
Thu, 23 May 2019 14:16:54 +0000 (23:16 +0900)
committerMinwoo Im <minwoo.im.dev@gmail.com>
Thu, 20 Jun 2019 14:23:07 +0000 (23:23 +0900)
This patch also makes fabrics module to not return the internal error
status in the middle of the subcommands to support uniformed mapped
error value which will be introduced in the next patches.

Cc: Keith Busch <kbusch@kernel.org>
Cc: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Cc: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
fabrics.c

index 9ed4a5684f6c83d6e052472d6866d1cb44be9e87..adedca0620662a24efedfc06f1f7053e556f26c9 100644 (file)
--- a/fabrics.c
+++ b/fabrics.c
@@ -984,20 +984,23 @@ int discover(const char *desc, int argc, char **argv, bool connect)
        ret = argconfig_parse(argc, argv, desc, command_line_options, &cfg,
                        sizeof(cfg));
        if (ret)
-               return ret;
+               goto out;
 
        cfg.nqn = NVME_DISC_SUBSYS_NAME;
 
        if (!cfg.transport && !cfg.traddr) {
-               return discover_from_conf_file(desc, argstr,
+               ret = discover_from_conf_file(desc, argstr,
                                command_line_options, connect);
        } else {
                ret = build_options(argstr, BUF_SIZE);
                if (ret)
-                       return ret;
+                       goto out;
 
-               return do_discover(argstr, connect);
+               ret = do_discover(argstr, connect);
        }
+
+out:
+       return ret;
 }
 
 int connect(const char *desc, int argc, char **argv)
@@ -1029,21 +1032,23 @@ int connect(const char *desc, int argc, char **argv)
        ret = argconfig_parse(argc, argv, desc, command_line_options, &cfg,
                        sizeof(cfg));
        if (ret)
-               return ret;
+               goto out;
 
        ret = build_options(argstr, BUF_SIZE);
        if (ret)
-               return ret;
+               goto out;
 
        if (!cfg.nqn) {
                fprintf(stderr, "need a -n argument\n");
-               return -EINVAL;
+               ret = -EINVAL;
+               goto out;
        }
 
        instance = add_ctrl(argstr);
        if (instance < 0)
-               return instance;
-       return 0;
+               ret = instance;
+out:
+       return ret;
 }
 
 static int scan_sys_nvme_filter(const struct dirent *d)
@@ -1148,11 +1153,12 @@ int disconnect(const char *desc, int argc, char **argv)
        ret = argconfig_parse(argc, argv, desc, command_line_options, &cfg,
                        sizeof(cfg));
        if (ret)
-               return ret;
+               goto out;
 
        if (!cfg.nqn && !cfg.device) {
                fprintf(stderr, "need a -n or -d argument\n");
-               return -EINVAL;
+               ret = -EINVAL;
+               goto out;
        }
 
        if (cfg.nqn) {
@@ -1174,6 +1180,7 @@ int disconnect(const char *desc, int argc, char **argv)
                                cfg.device);
        }
 
+out:
        return ret;
 }
 
@@ -1188,7 +1195,7 @@ int disconnect_all(const char *desc, int argc, char **argv)
        ret = argconfig_parse(argc, argv, desc, command_line_options, &cfg,
                        sizeof(cfg));
        if (ret)
-               return ret;
+               goto out;
 
        slist = get_subsys_list(&subcnt, NULL, NVME_NSID_ALL);
        for (i = 0; i < subcnt; i++) {