Merge branch 'clarify-io-errors' of https://github.com/Hi-Angel/fio
[fio.git] / init.c
diff --git a/init.c b/init.c
index b7f866e65972b7882e123669cb7ec871404f2630..da8007760a5f321f779c2c61e4d8297af6e29ffb 100644 (file)
--- a/init.c
+++ b/init.c
@@ -1541,7 +1541,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num,
        if (fixup_options(td))
                goto err;
 
-       if (init_dedupe_working_set_seeds(td))
+       if (!td->o.dedupe_global && init_dedupe_working_set_seeds(td, 0))
                goto err;
 
        /*
@@ -2810,6 +2810,15 @@ int parse_cmd_line(int argc, char *argv[], int client_type)
                                break;
 
                        ret = fio_cmd_ioengine_option_parse(td, opt, val);
+
+                       if (ret) {
+                               if (td) {
+                                       put_job(td);
+                                       td = NULL;
+                               }
+                               do_exit++;
+                               exit_val = 1;
+                       }
                        break;
                }
                case 'w':
@@ -2990,7 +2999,7 @@ int parse_cmd_line(int argc, char *argv[], int client_type)
                        log_err("%s: unrecognized option '%s'\n", argv[0],
                                                        argv[optind - 1]);
                        show_closest_option(argv[optind - 1]);
-                       fallthrough;
+                       fio_fallthrough;
                default:
                        do_exit++;
                        exit_val = 1;