The following changes since commit f01b34ae759afccf39c1bf47972e45d91448e7bb:

  Error out gracefully if we don't find the replay device for log replay 
(2013-11-21 11:13:12 -0700)

are available in the git repository at:
  git://git.kernel.dk/fio.git master

Bruce Cran (1):
      Windows: add CONFIG_TLS_THREAD=y and swap pthreadGC2 to libwinpthread-1.

Jens Axboe (3):
      init: allow FIO_OPT_STR_SET options to have an optional argument
      init: escape description option string
      Merge branch 'master' of ssh://git.kernel.dk/data/git/fio

 configure              |    1 +
 fio.h                  |    2 +-
 init.c                 |   14 +++++---------
 options.c              |    9 +++++----
 os/windows/install.wxs |    2 +-
 parse.c                |   25 ++++++++++++++++++++-----
 parse.h                |    2 +-
 7 files changed, 34 insertions(+), 21 deletions(-)

---

Diff of recent changes:

diff --git a/configure b/configure
index ef7be01..0f1acd0 100755
--- a/configure
+++ b/configure
@@ -243,6 +243,7 @@ CYGWIN*)
   output_sym "CONFIG_CLOCK_GETTIME"
   output_sym "CONFIG_SCHED_IDLE"
   output_sym "CONFIG_TCP_NODELAY"
+  output_sym "CONFIG_TLS_THREAD"
   echo "CC=$CC" >> $config_host_mak
   echo "BUILD_CFLAGS=$CFLAGS -include config-host.h -D_GNU_SOURCE" >> 
$config_host_mak
   exit 0
diff --git a/fio.h b/fio.h
index a6dcb4e..d0fe83a 100644
--- a/fio.h
+++ b/fio.h
@@ -406,7 +406,7 @@ extern int parse_cmd_line(int, char **, int);
 extern int fio_backend(void);
 extern void reset_fio_state(void);
 extern void clear_io_state(struct thread_data *);
-extern int fio_options_parse(struct thread_data *, char **, int);
+extern int fio_options_parse(struct thread_data *, char **, int, int);
 extern void fio_keywords_init(void);
 extern int fio_cmd_option_parse(struct thread_data *, const char *, char *);
 extern int fio_cmd_ioengine_option_parse(struct thread_data *, const char *, 
char *);
diff --git a/init.c b/init.c
index 1841ffc..4dd0c9a 100644
--- a/init.c
+++ b/init.c
@@ -1146,9 +1146,9 @@ void add_job_opts(const char **o, int client_type)
                        td = get_new_job(0, td_parent, 0);
                }
                if (in_global)
-                       fio_options_parse(td_parent, (char **) &o[i], 1);
+                       fio_options_parse(td_parent, (char **) &o[i], 1, 0);
                else
-                       fio_options_parse(td, (char **) &o[i], 1);
+                       fio_options_parse(td, (char **) &o[i], 1, 0);
                i++;
        }
 
@@ -1329,14 +1329,10 @@ int parse_jobs_ini(char *file, int is_buf, int 
stonewall_flag, int type)
                        num_opts++;
                }
 
-               ret = fio_options_parse(td, opts, num_opts);
-               if (!ret) {
-                       if (dump_cmdline)
-                               for (i = 0; i < num_opts; i++)
-                                       log_info("--%s ", opts[i]);
-
+               ret = fio_options_parse(td, opts, num_opts, dump_cmdline);
+               if (!ret)
                        ret = add_job(td, name, 0, 0, type);
-               } else {
+               else {
                        log_err("fio: job %s dropped\n", name);
                        put_job(td);
                }
diff --git a/options.c b/options.c
index 4b4c251..d2493e4 100644
--- a/options.c
+++ b/options.c
@@ -3277,7 +3277,7 @@ static void add_to_lopt(struct option *lopt, struct 
fio_option *o,
        lopt->name = (char *) name;
        lopt->val = val;
        if (o->type == FIO_OPT_STR_SET)
-               lopt->has_arg = no_argument;
+               lopt->has_arg = optional_argument;
        else
                lopt->has_arg = required_argument;
 }
@@ -3550,7 +3550,8 @@ static char **dup_and_sub_options(char **opts, int 
num_opts)
        return opts_copy;
 }
 
-int fio_options_parse(struct thread_data *td, char **opts, int num_opts)
+int fio_options_parse(struct thread_data *td, char **opts, int num_opts,
+                       int dump_cmdline)
 {
        int i, ret, unknown;
        char **opts_copy;
@@ -3561,7 +3562,7 @@ int fio_options_parse(struct thread_data *td, char 
**opts, int num_opts)
        for (ret = 0, i = 0, unknown = 0; i < num_opts; i++) {
                struct fio_option *o;
                int newret = parse_option(opts_copy[i], opts[i], fio_options,
-                                               &o, td);
+                                               &o, td, dump_cmdline);
 
                if (opts_copy[i]) {
                        if (newret && !o) {
@@ -3590,7 +3591,7 @@ int fio_options_parse(struct thread_data *td, char 
**opts, int num_opts)
                        if (td->eo)
                                newret = parse_option(opts_copy[i], opts[i],
                                                      td->io_ops->options, &o,
-                                                     td->eo);
+                                                     td->eo, dump_cmdline);
 
                        ret |= newret;
                        if (!o)
diff --git a/os/windows/install.wxs b/os/windows/install.wxs
index ac145bc..adc50f6 100755
--- a/os/windows/install.wxs
+++ b/os/windows/install.wxs
@@ -27,7 +27,7 @@
                                                        <File 
Source="..\..\fio.exe"/>
                                                </Component>
                                                <Component>
-                                                       <File KeyPath="yes" 
Source="..\..\pthreadGC2.dll"/>
+                                                       <File KeyPath="yes" 
Source="..\..\libwinpthread-1.dll"/>
                                                </Component>
                                                <Component>
                                                        <File Id="README" 
Name="README.txt" Source="..\..\README"/>
diff --git a/parse.c b/parse.c
index 5e3573e..e3f431e 100644
--- a/parse.c
+++ b/parse.c
@@ -944,7 +944,8 @@ int parse_cmd_option(const char *opt, const char *val,
 }
 
 int parse_option(char *opt, const char *input,
-                struct fio_option *options, struct fio_option **o, void *data)
+                struct fio_option *options, struct fio_option **o, void *data,
+                int dump_cmdline)
 {
        char *post;
 
@@ -965,11 +966,25 @@ int parse_option(char *opt, const char *input,
                return 1;
        }
 
-       if (!handle_option(*o, post, data))
-               return 0;
+       if (handle_option(*o, post, data)) {
+               log_err("fio: failed parsing %s\n", input);
+               return 1;
+       }
 
-       log_err("fio: failed parsing %s\n", input);
-       return 1;
+       if (dump_cmdline) {
+               const char *delim;
+
+               if (!strcmp("description", (*o)->name))
+                       delim = "\"";
+               else
+                       delim = "";
+
+               log_info("--%s%s", (*o)->name, post ? "" : " ");
+               if (post)
+                       log_info("=%s%s%s ", delim, post, delim);
+       }
+
+       return 0;
 }
 
 /*
diff --git a/parse.h b/parse.h
index cf15ce0..34d99d4 100644
--- a/parse.h
+++ b/parse.h
@@ -76,7 +76,7 @@ struct fio_option {
 
 typedef int (str_cb_fn)(void *, char *);
 
-extern int parse_option(char *, const char *, struct fio_option *, struct 
fio_option **, void *);
+extern int parse_option(char *, const char *, struct fio_option *, struct 
fio_option **, void *, int);
 extern void sort_options(char **, struct fio_option *, int);
 extern int parse_cmd_option(const char *t, const char *l, struct fio_option *, 
void *);
 extern int show_cmd_help(struct fio_option *, const char *);
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to