Add version 2 of the iolog format
The old format had some short comings - notably not supporting > 1
file workloads. So add a new format that defines adding/open/close
of files. Fio will still load the older format iologs, but the new
ones wont work on older fio versions.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/filesetup.c b/filesetup.c
index 93cddb1..7a9a2af 100644
--- a/filesetup.c
+++ b/filesetup.c
@@ -513,7 +513,7 @@
}
}
-void add_file(struct thread_data *td, const char *fname)
+int add_file(struct thread_data *td, const char *fname)
{
int cur_files = td->files_index;
char file_name[PATH_MAX];
@@ -543,6 +543,8 @@
td->files_index++;
if (f->filetype == FIO_TYPE_FILE)
td->nr_normal_files++;
+
+ return cur_files;
}
void get_file(struct fio_file *f)
@@ -645,3 +647,28 @@
f->file_name = strdup(f->file_name);
}
}
+
+/*
+ * Returns the index that matches the filename, or -1 if not there
+ */
+int get_fileno(struct thread_data *td, const char *fname)
+{
+ struct fio_file *f;
+ unsigned int i;
+
+ for_each_file(td, f, i)
+ if (!strcmp(f->file_name, fname))
+ return i;
+
+ return -1;
+}
+
+/*
+ * For log usage, where we add/open/close files automatically
+ */
+void free_release_files(struct thread_data *td)
+{
+ close_files(td);
+ td->files_index = 0;
+ td->nr_normal_files = 0;
+}