Fio 3.15
[fio.git] / profile.c
index 74f14facd6c6d0115bea1af3dc0c328fda1fdfd7..90c9ea8d14eb6c4d52c5a94bef7eab3e32fc0a0e 100644 (file)
--- 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;
        }
@@ -49,6 +52,7 @@ static int add_profile_options(struct profile_ops *ops)
        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)