[PATCH] Improve job/cmd line parsing error logging
Drop jobs when needed and so on.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/init.c b/init.c
index 6ad3c64..b004d89 100644
--- a/init.c
+++ b/init.c
@@ -932,6 +932,9 @@
if (!ret) {
fsetpos(f, &off);
ret = add_job(td, name, 0);
+ } else {
+ log_err("fio: job %s dropped\n", name);
+ put_job(td);
}
} while (!ret);
@@ -1054,7 +1057,12 @@
return 0;
}
- parse_cmd_option(opt, val, options, td);
+ ret = parse_cmd_option(opt, val, options, td);
+ if (ret) {
+ log_err("fio: job dropped\n");
+ put_job(td);
+ td = NULL;
+ }
break;
}
default:
@@ -1184,7 +1192,6 @@
if (!thread_number) {
log_err("No jobs defined(s)\n");
- usage();
return 1;
}
diff --git a/parse.c b/parse.c
index 7af6be1..ae8d0d9 100644
--- a/parse.c
+++ b/parse.c
@@ -240,9 +240,6 @@
ret = 1;
}
- if (ret)
- fprintf(stderr, "fio: failed parsing %s=%s\n", o->name, ptr);
-
return ret;
}
@@ -257,7 +254,11 @@
return 1;
}
- return handle_option(o, val, data);
+ if (!handle_option(o, val, data))
+ return 0;
+
+ fprintf(stderr, "fio: failed parsing %s=%s\n", opt, val);
+ return 1;
}
int parse_option(const char *opt, struct fio_option *options, void *data)
@@ -285,5 +286,9 @@
return 1;
}
- return handle_option(o, post, data);
+ if (!handle_option(o, post, data))
+ return 0;
+
+ fprintf(stderr, "fio: failed parsing %s\n", opt);
+ return 1;
}