- sprintf(tmp, "%s/%s.%d", td->directory, jobname, td->thread_number);
- else
- sprintf(tmp, "%s.%d", jobname, td->thread_number);
- td->file_name = strdup(tmp);
- } else
- td->file_name = strdup(jobname);
+ sprintf(tmp, "%s/", td->directory);
+
+ td->files = malloc(sizeof(struct fio_file) * td->nr_files);
+
+ for_each_file(td, f, i) {
+ memset(f, 0, sizeof(*f));
+ f->fd = -1;
+
+ if (td->filename)
+ sprintf(tmp + len, "%s", td->filename);
+ else
+ sprintf(tmp + len, "%s.%d.%d", jobname, td->thread_number, i);
+ f->file_name = strdup(tmp);
+ }
+ } else {
+ td->nr_files = 1;
+ td->files = malloc(sizeof(struct fio_file));
+ f = &td->files[0];
+
+ memset(f, 0, sizeof(*f));
+ f->fd = -1;
+ f->file_name = strdup(jobname);
+ }