if (td->odirect)
td->io_ops->flags |= FIO_RAWIO;
- if (td->filetype == FIO_TYPE_FILE) {
+ if (td->filename)
+ td->nr_uniq_files = 1;
+ else
+ td->nr_uniq_files = td->nr_files;
+
+ if (td->filetype == FIO_TYPE_FILE || td->filename) {
char tmp[PATH_MAX];
int len = 0;
int i;
f->fd = -1;
f->fileno = i;
- sprintf(tmp + len, "%s.%d.%d", jobname, td->thread_number, i);
+ 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 {
fgetpos(f, &off);
continue;
}
+ if (!check_strstore(p, "filename", tmpbuf)) {
+ td->filename = strdup(tmpbuf);
+ fgetpos(f, &off);
+ continue;
+ }
if (!check_strstore(p, "name", tmpbuf)) {
snprintf(td->name, sizeof(td->name)-1, "%s%d", tmpbuf, td->thread_number);
fgetpos(f, &off);