projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'windowaio_invalidate' of https://github.com/sitsofe/fio
[fio.git]
/
filesetup.c
diff --git
a/filesetup.c
b/filesetup.c
index 891a55a1ddb97ab30c7cc375cd9246fed21addd8..0631a01f96a635789f925e6f54f7abf9a23ce92f 100644
(file)
--- a/
filesetup.c
+++ b/
filesetup.c
@@
-1342,6
+1342,7
@@
void close_and_free_files(struct thread_data *td)
{
struct fio_file *f;
unsigned int i;
{
struct fio_file *f;
unsigned int i;
+ bool use_free = td_ioengine_flagged(td, FIO_NOFILEHASH);
dprint(FD_FILE, "close files\n");
dprint(FD_FILE, "close files\n");
@@
-1361,13
+1362,19
@@
void close_and_free_files(struct thread_data *td)
td_io_unlink_file(td, f);
}
td_io_unlink_file(td, f);
}
- sfree(f->file_name);
+ if (use_free)
+ free(f->file_name);
+ else
+ sfree(f->file_name);
f->file_name = NULL;
if (fio_file_axmap(f)) {
axmap_free(f->io_axmap);
f->io_axmap = NULL;
}
f->file_name = NULL;
if (fio_file_axmap(f)) {
axmap_free(f->io_axmap);
f->io_axmap = NULL;
}
- sfree(f);
+ if (use_free)
+ free(f);
+ else
+ sfree(f);
}
td->o.filename = NULL;
}
td->o.filename = NULL;
@@
-1481,7
+1488,10
@@
static struct fio_file *alloc_new_file(struct thread_data *td)
{
struct fio_file *f;
{
struct fio_file *f;
- f = smalloc(sizeof(*f));
+ if (td_ioengine_flagged(td, FIO_NOFILEHASH))
+ f = calloc(1, sizeof(*f));
+ else
+ f = smalloc(sizeof(*f));
if (!f) {
assert(0);
return NULL;
if (!f) {
assert(0);
return NULL;
@@
-1564,7
+1574,10
@@
int add_file(struct thread_data *td, const char *fname, int numjob, int inc)
if (td->io_ops && td_ioengine_flagged(td, FIO_DISKLESSIO))
f->real_file_size = -1ULL;
if (td->io_ops && td_ioengine_flagged(td, FIO_DISKLESSIO))
f->real_file_size = -1ULL;
- f->file_name = smalloc_strdup(file_name);
+ if (td_ioengine_flagged(td, FIO_NOFILEHASH))
+ f->file_name = strdup(file_name);
+ else
+ f->file_name = smalloc_strdup(file_name);
if (!f->file_name)
assert(0);
if (!f->file_name)
assert(0);
@@
-1588,7
+1601,8
@@
int add_file(struct thread_data *td, const char *fname, int numjob, int inc)
if (f->filetype == FIO_TYPE_FILE)
td->nr_normal_files++;
if (f->filetype == FIO_TYPE_FILE)
td->nr_normal_files++;
- set_already_allocated(file_name);
+ if (td->o.numjobs > 1)
+ set_already_allocated(file_name);
if (inc)
td->o.nr_files++;
if (inc)
td->o.nr_files++;
@@
-1768,7
+1782,10
@@
void dup_files(struct thread_data *td, struct thread_data *org)
__f = alloc_new_file(td);
if (f->file_name) {
__f = alloc_new_file(td);
if (f->file_name) {
- __f->file_name = smalloc_strdup(f->file_name);
+ if (td_ioengine_flagged(td, FIO_NOFILEHASH))
+ __f->file_name = strdup(f->file_name);
+ else
+ __f->file_name = smalloc_strdup(f->file_name);
if (!__f->file_name)
assert(0);
if (!__f->file_name)
assert(0);