The following changes since commit a3c86fc452d1c5e6ec78c6c2617540c34b7d9035: Remove duplicate LDFLAGS on -o lines (2013-09-04 14:12:09 -0600) are available in the git repository at: git://git.kernel.dk/fio.git master Jens Axboe (2): Fix problem with --showcmd and callbacks that verify Catch more places where the callback should just return on parse/check fio.h | 1 + init.c | 10 ++++++++-- options.c | 34 +++++++++++++++++++++++++++++++++- 3 files changed, 42 insertions(+), 3 deletions(-) --- Diff of recent changes: diff --git a/fio.h b/fio.h index e7d5c27..0d7fbeb 100644 --- a/fio.h +++ b/fio.h @@ -420,6 +420,7 @@ extern void td_fill_rand_seeds(struct thread_data *); extern void add_job_opts(const char **, int); extern char *num2str(unsigned long, int, int, int, int); extern int ioengine_load(struct thread_data *); +extern int parse_dryrun(void); extern uintptr_t page_mask; extern uintptr_t page_size; diff --git a/init.c b/init.c index 1afc341..bf54e95 100644 --- a/init.c +++ b/init.c @@ -915,6 +915,12 @@ static char *make_filename(char *buf, struct thread_options *o, return buf; } + +int parse_dryrun(void) +{ + return dump_cmdline || parse_only; +} + /* * Adds a job to the list of things todo. Sanitizes the various options * to make sure we don't have conflicts, and initializes various @@ -939,7 +945,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num, /* * if we are just dumping the output command line, don't add the job */ - if (dump_cmdline || parse_only) { + if (parse_dryrun()) { put_job(td); return 0; } @@ -1944,7 +1950,7 @@ int parse_options(int argc, char *argv[]) fio_options_free(&def_thread); if (!thread_number) { - if (dump_cmdline || parse_only) + if (parse_dryrun()) return 0; if (exec_profile) return 0; diff --git a/options.c b/options.c index caf89d3..a064764 100644 --- a/options.c +++ b/options.c @@ -168,6 +168,9 @@ static int str_bssplit_cb(void *data, const char *input) char *str, *p, *odir, *ddir; int ret = 0; + if (parse_dryrun()) + return 0; + p = str = strdup(input); strip_blank_front(&str); @@ -290,6 +293,10 @@ static int str_ignore_error_cb(void *data, const char *input) struct thread_data *td = data; char *str, *p, *n; int type = 0, ret = 1; + + if (parse_dryrun()) + return 0; + p = str = strdup(input); strip_blank_front(&str); @@ -315,6 +322,9 @@ static int str_rw_cb(void *data, const char *str) struct thread_options *o = &td->o; char *nr = get_opt_postfix(str); + if (parse_dryrun()) + return 0; + o->ddir_seq_nr = 1; o->ddir_seq_add = 0; @@ -391,6 +401,9 @@ static int str_cpumask_cb(void *data, unsigned long long *val) long max_cpu; int ret; + if (parse_dryrun()) + return 0; + ret = fio_cpuset_init(&td->o.cpumask); if (ret < 0) { log_err("fio: cpuset_init failed\n"); @@ -489,6 +502,9 @@ static int str_cpus_allowed_cb(void *data, const char *input) struct thread_data *td = data; int ret; + if (parse_dryrun()) + return 0; + ret = set_cpus_allowed(td, &td->o.cpumask, input); if (!ret) td->o.cpumask_set = 1; @@ -514,6 +530,9 @@ static int str_numa_cpunodes_cb(void *data, char *input) { struct thread_data *td = data; + if (parse_dryrun()) + return 0; + /* numa_parse_nodestring() parses a character string list * of nodes into a bit mask. The bit mask is allocated by * numa_allocate_nodemask(), so it should be freed by @@ -536,8 +555,12 @@ static int str_numa_mpol_cb(void *data, char *input) const char * const policy_types[] = { "default", "prefer", "bind", "interleave", "local", NULL }; int i; + char *nodelist; - char *nodelist = strchr(input, ':'); + if (parse_dryrun()) + return 0; + + nodelist = strchr(input, ':'); if (nodelist) { /* NUL-terminate mode */ *nodelist++ = '\0'; @@ -669,6 +692,9 @@ static int str_random_distribution_cb(void *data, const char *str) double val; char *nr; + if (parse_dryrun()) + return 0; + if (td->o.random_distribution == FIO_RAND_DIST_ZIPF) val = 1.1; else if (td->o.random_distribution == FIO_RAND_DIST_PARETO) @@ -777,6 +803,9 @@ static int str_directory_cb(void *data, const char fio_unused *str) struct thread_data *td = data; struct stat sb; + if (parse_dryrun()) + return 0; + if (lstat(td->o.directory, &sb) < 0) { int ret = errno; @@ -796,6 +825,9 @@ static int str_opendir_cb(void *data, const char fio_unused *str) { struct thread_data *td = data; + if (parse_dryrun()) + return 0; + if (!td->files_index) td->o.nr_files = 0; -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html