X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=init.c;h=0a3529d08425fa53bb3319a52ad319079a6e3cbd;hp=37c414ebbfef129bd07f75dedd6677cc3657c5df;hb=ecc314ba7c5f02b7e90ac1dfbce1a74cd4e6d6fe;hpb=0dd2d11ea010566fd2bc2661af58a0eefe49f750 diff --git a/init.c b/init.c index 37c414eb..0a3529d0 100644 --- a/init.c +++ b/init.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -21,7 +20,9 @@ #include "verify.h" #include "profile.h" -static char fio_version_string[] = "fio 1.41.6"; +#include "lib/getopt.h" + +static char fio_version_string[] = "fio 1.44.3"; #define FIO_RANDSEED (0xb1899bedUL) @@ -193,6 +194,8 @@ static int __setup_rate(struct thread_data *td, enum fio_ddir ddir) unsigned int bs = td->o.min_bs[ddir]; unsigned long long bytes_per_sec; + assert(ddir_rw(ddir)); + if (td->o.rate[ddir]) bytes_per_sec = td->o.rate[ddir]; else @@ -428,7 +431,9 @@ static int exists_and_not_file(const char *filename) if (lstat(filename, &sb) == -1) return 0; - if (S_ISREG(sb.st_mode)) + /* \\.\ is the device namespace in Windows, where every file + * is a device node */ + if (S_ISREG(sb.st_mode) && strncmp(filename, "\\\\.\\", 4) != 0) return 0; return 1; @@ -444,6 +449,7 @@ void td_fill_rand_seeds(struct thread_data *td) os_random_seed(td->rand_seeds[3], &td->next_file_state); os_random_seed(td->rand_seeds[5], &td->file_size_state); + os_random_seed(td->rand_seeds[6], &td->trim_state); if (!td_random(td)) return; @@ -557,7 +563,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) td->ts.slat_stat[0].min_val = td->ts.slat_stat[1].min_val = ULONG_MAX; td->ts.lat_stat[0].min_val = td->ts.lat_stat[1].min_val = ULONG_MAX; td->ts.bw_stat[0].min_val = td->ts.bw_stat[1].min_val = ULONG_MAX; - td->ddir_nr = td->o.ddir_nr; + td->ddir_seq_nr = td->o.ddir_seq_nr; if ((td->o.stonewall || td->o.new_group) && prev_group_jobs) { prev_group_jobs = 0; @@ -954,7 +960,6 @@ static int setup_thread_area(void) static void usage(const char *name) { - printf("%s\n", fio_version_string); printf("%s [options] [job options] \n", name); printf("\t--debug=options\tEnable debug logging\n"); printf("\t--output\tWrite output to file\n"); @@ -1193,6 +1198,8 @@ int parse_options(int argc, char *argv[]) f_out = stdout; f_err = stderr; + log_info("%s\n", fio_version_string); + fio_options_dup_and_init(l_opts); if (setup_thread_area()) @@ -1219,7 +1226,7 @@ int parse_options(int argc, char *argv[]) if (exec_profile) return 0; - log_err("No jobs defined(s)\n\n"); + log_err("No jobs(s) defined\n\n"); usage(argv[0]); return 1; }