X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=profile.c;h=90c9ea8d14eb6c4d52c5a94bef7eab3e32fc0a0e;hp=c97584372b52c957944a8aac122eba3e5fa183e7;hb=de5ed0e4d398bc9d4576f9b2b82d7686989c27e1;hpb=9746fdbbd89cb202ecf2ee402b79ef215390eaea diff --git a/profile.c b/profile.c index c9758437..90c9ea8d 100644 --- a/profile.c +++ b/profile.c @@ -30,7 +30,10 @@ int load_profile(const char *profile) ops = find_profile(profile); if (ops) { - ops->prep_cmd(); + if (ops->prep_cmd()) { + log_err("fio: profile %s prep failed\n", profile); + return 1; + } add_job_opts(ops->cmdline, FIO_CLIENT_TYPE_CLI); return 0; } @@ -42,13 +45,14 @@ int load_profile(const char *profile) static int add_profile_options(struct profile_ops *ops) { struct fio_option *o; - + if (!ops->options) return 0; o = ops->options; while (o->name) { o->prof_name = ops->name; + o->prof_opts = ops->opt_data; if (add_option(o)) return 1; o++; @@ -93,8 +97,10 @@ void profile_add_hooks(struct thread_data *td) if (!ops) return; - if (ops->io_ops) + if (ops->io_ops) { td->prof_io_ops = *ops->io_ops; + td->flags |= TD_F_PROFILE_OPS; + } } int profile_td_init(struct thread_data *td)