X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=options.c;h=74c64780a92658695217ee46859d631eb0008b14;hb=ab2cabdb2c67d8b90c94c1a95f7a2286a0f818b9;hp=b4456a42bca3b53c9fe41896bd8ac65990ca060e;hpb=8eb016d3727522d580d4dd463aefef58b7ecdb00;p=fio.git diff --git a/options.c b/options.c index b4456a42..74c64780 100644 --- a/options.c +++ b/options.c @@ -744,6 +744,20 @@ static int str_gtod_cpu_cb(void *data, long long *il) return 0; } +static int str_size_cb(void *data, unsigned long long *__val) +{ + struct thread_data *td = data; + unsigned long long v = *__val; + + if (parse_is_percent(v)) { + td->o.size = 0; + td->o.size_percent = -1ULL - v; + } else + td->o.size = v; + + return 0; +} + static int rw_verify(struct fio_option *o, void *data) { struct thread_data *td = data; @@ -1031,8 +1045,7 @@ static struct fio_option options[FIO_MAX_OPTS] = { { .name = "size", .type = FIO_OPT_STR_VAL, - .off1 = td_var_offset(size), - .minval = 1, + .cb = str_size_cb, .help = "Total size of device or files", }, {