Recent changes (master)

Jens Axboe
2014-12-23T13:00:05Z

The following changes since commit b04f590551050b23768a3969d47371d363aa8745:

Fix default scrambling of buffers (2014-12-20 14:44:45 -0700)

are available in the git repository at:

git://git.kernel.dk/fio.git master

for you to fetch changes up to 3c6c5a29a74cf5727c0572b82907c330c38cea61:

Fio 2.2.3 (2014-12-22 20:06:45 -0700)

----------------------------------------------------------------
fio v2.2.3

----------------------------------------------------------------
Jens Axboe (3):
Fio 2.2.2
options: ensure that we check all candidates on is_set check
Fio 2.2.3

FIO-VERSION-GEN | 2 +-
options.c | 46 ++++++++++++++++++++++++++++++++++++----------
os/windows/install.wxs | 2 +-
3 files changed, 38 insertions(+), 12 deletions(-)

---

Diff of recent changes:

diff --git a/FIO-VERSION-GEN b/FIO-VERSION-GEN
index d124e36..a26eb2e 100755
--- a/FIO-VERSION-GEN
+++ b/FIO-VERSION-GEN
@@ -1,7 +1,7 @@
#!/bin/sh

GVF=FIO-VERSION-FILE
-DEF_VER=fio-2.2.1
+DEF_VER=fio-2.2.3

LF='
'
diff --git a/options.c b/options.c
index e3c9c87..3e783c1 100644
--- a/options.c
+++ b/options.c
@@ -4191,21 +4191,32 @@ struct fio_option *fio_option_find(const char *name)
return find_option(fio_options, name);
}

-int __fio_option_is_set(struct thread_options *o, unsigned int off1)
+static struct fio_option *find_next_opt(struct thread_options *o,
+ struct fio_option *from,
+ unsigned int off1)
{
- unsigned int opt_off, index, offset;
- struct fio_option *opt = NULL;
- int i;
+ struct fio_option *opt;

- for (i = 0; fio_options[i].name; i++) {
- if (off1 == fio_options[i].off1) {
- opt = &fio_options[i];
+ if (!from)
+ from = &fio_options[0];
+ else
+ from++;
+
+ opt = NULL;
+ do {
+ if (off1 == from->off1) {
+ opt = from;
break;
}
- }
+ from++;
+ } while (from->name);

- if (!opt)
- return -1;
+ return opt;
+}
+
+static int opt_is_set(struct thread_options *o, struct fio_option *opt)
+{
+ unsigned int opt_off, index, offset;

opt_off = opt - &fio_options[0];
index = opt_off / (8 * sizeof(uint64_t));
@@ -4213,6 +4224,21 @@ int __fio_option_is_set(struct thread_options *o, unsigned int off1)
return (o->set_options[index] & (1UL << offset)) != 0;
}

+int __fio_option_is_set(struct thread_options *o, unsigned int off1)
+{
+ struct fio_option *opt, *next;
+
+ next = NULL;
+ while ((opt = find_next_opt(o, next, off1)) != NULL) {
+ if (opt_is_set(o, opt))
+ return 1;
+
+ next = opt;
+ }
+
+ return 0;
+}
+
void fio_option_mark_set(struct thread_options *o, struct fio_option *opt)
{
unsigned int opt_off, index, offset;
diff --git a/os/windows/install.wxs b/os/windows/install.wxs
index 5db099b..405b05b 100755
--- a/os/windows/install.wxs
+++ b/os/windows/install.wxs
@@ -10,7 +10,7 @@
<Product Id="*"
Codepage="1252" Language="1033"
Manufacturer="fio" Name="fio"
- UpgradeCode="2338A332-5511-43CF-B9BD-5C60496CCFCC" Version="2.2.1">
+ UpgradeCode="2338A332-5511-43CF-B9BD-5C60496CCFCC" Version="2.2.3">
<Package
Description="Flexible IO Tester"
InstallerVersion="301" Keywords="Installer,MSI,Database"