unsigned long long ret, sized;
unsigned long r;
- if (td->o.use_os_rand) {
- r = os_random_long(&td->file_size_state);
- sized = td->o.file_size_high - td->o.file_size_low;
- ret = (unsigned long long) ((double) sized * (r / (OS_RAND_MAX + 1.0)));
- } else {
- r = __rand(&td->__file_size_state);
- sized = td->o.file_size_high - td->o.file_size_low;
- ret = (unsigned long long) ((double) sized * (r / (FRAND_MAX + 1.0)));
- }
-
+ r = __rand(&td->file_size_state);
+ sized = td->o.file_size_high - td->o.file_size_low;
+ ret = (unsigned long long) ((double) sized * (r / (FRAND_MAX + 1.0)));
ret += td->o.file_size_low;
ret -= (ret % td->o.rw_min_bs);
return ret;
}
}
- if (!o->size || o->size > total_size)
+ if (!o->size || (total_size && o->size > total_size))
o->size = total_size;
if (o->size < td_min_bs(td)) {
{
unsigned int range_size, seed;
unsigned long nranges;
- uint64_t file_size;
+ uint64_t fsize;
range_size = min(td->o.min_bs[DDIR_READ], td->o.min_bs[DDIR_WRITE]);
- file_size = min(f->real_file_size, f->io_size);
+ fsize = min(f->real_file_size, f->io_size);
- nranges = (file_size + range_size - 1) / range_size;
+ nranges = (fsize + range_size - 1) / range_size;
seed = jhash(f->file_name, strlen(f->file_name), 0) * td->thread_number;
if (!td->o.rand_repeatable)
return 0;
for_each_file(td, f, i) {
- uint64_t file_size = min(f->real_file_size, f->io_size);
+ uint64_t fsize = min(f->real_file_size, f->io_size);
- blocks = file_size / (unsigned long long) td->o.rw_min_bs;
+ blocks = fsize / (unsigned long long) td->o.rw_min_bs;
if (td->o.random_generator == FIO_RAND_GEN_LFSR) {
unsigned long seed;