Warn when seeing a job option outside of a job section
[fio.git] / init.c
diff --git a/init.c b/init.c
index 1e0eeccfdc6e5dcbf0b95b0fa479e111108826f6..4fd41b7dff1d14825df5fa95230b284dffeb4dd9 100644 (file)
--- a/init.c
+++ b/init.c
@@ -17,7 +17,7 @@
 #include "fio.h"
 #include "parse.h"
 
-static char fio_version_string[] = "fio 1.14a";
+static char fio_version_string[] = "fio 1.15";
 
 #define FIO_RANDSEED           (0xb1899bedUL)
 
@@ -115,6 +115,9 @@ static struct thread_data *get_new_job(int global, struct thread_data *parent)
        td = &threads[thread_number++];
        *td = *parent;
 
+       dup_files(td, parent);
+       options_mem_dupe(td);
+
        td->thread_number = thread_number;
        return td;
 }
@@ -478,6 +481,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num)
 
                td_new->o.numjobs = 1;
                td_new->o.stonewall = 0;
+               td_new->o.new_group = 0;
 
                if (file_alloced) {
                        td_new->o.filename = NULL;
@@ -541,10 +545,16 @@ static int parse_jobs_ini(char *file, int stonewall_flag)
                p = fgets(string, 4095, f);
                if (!p)
                        break;
+
+               strip_blank_front(&p);
+               strip_blank_end(p);
+
                if (is_empty_or_comment(p))
                        continue;
-               if (sscanf(p, "[%255s]", name) != 1)
+               if (sscanf(p, "[%255s]", name) != 1) {
+                       log_err("fio: option <%s> outside of job section\n", p);
                        continue;
+               }
 
                global = !strncmp(name, "global", 6);
 
@@ -799,6 +809,7 @@ int parse_options(int argc, char *argv[])
        }
 
        free(ini_file);
+       options_mem_free(&def_thread);
 
        if (!thread_number) {
                log_err("No jobs defined(s)\n");