X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=init.c;h=0100da213a2420db2487b24979895b4c68468455;hb=e123c8332fc051dbbc0808a95a1cc0d994613101;hp=04b4a1e5020c0b85d767ea33bcb1918e320a1eb8;hpb=e7b24047454305dd61c9b4f9f73628a03c240a9f;p=fio.git diff --git a/init.c b/init.c index 04b4a1e5..0100da21 100644 --- a/init.c +++ b/init.c @@ -27,7 +27,7 @@ #include "filelock.h" #include "lib/getopt.h" -#include "lib/strcasestr.h" +#include "oslib/strcasestr.h" #include "crc/test.h" @@ -737,11 +737,16 @@ static int fixup_options(struct thread_data *td) /* * For fully compressible data, just zero them at init time. - * It's faster than repeatedly filling it. + * It's faster than repeatedly filling it. For non-zero + * compression, we should have refill_buffers set. Set it, unless + * the job file already changed it. */ - if (td->o.compress_percentage == 100) { - td->o.zero_buffers = 1; - td->o.compress_percentage = 0; + if (o->compress_percentage) { + if (o->compress_percentage == 100) { + o->zero_buffers = 1; + o->compress_percentage = 0; + } else if (!fio_option_is_set(o, refill_buffers)) + o->refill_buffers = 1; } /* @@ -1233,6 +1238,10 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num, if ((o->stonewall || o->new_group) && prev_group_jobs) { prev_group_jobs = 0; groupid++; + if (groupid == INT_MAX) { + log_err("fio: too many groups defined\n"); + goto err; + } } td->groupid = groupid; @@ -1890,6 +1899,9 @@ static int set_debug(const char *string) char *opt; int i; + if (!string) + return 0; + if (!strcmp(string, "?") || !strcmp(string, "help")) { log_info("fio: dumping debug options:"); for (i = 0; debug_levels[i].name; i++) {