projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Memory leak fixes
[fio.git]
/
fio.c
diff --git
a/fio.c
b/fio.c
index e5d3bbf3c204790e7f98b2b36b749f870acdac22..856ca753fdd472e7c435c9138422e343ff08edfa 100644
(file)
--- a/
fio.c
+++ b/
fio.c
@@
-1361,7
+1361,6
@@
err:
if (td->o.write_iolog_file)
write_iolog_close(td);
if (td->o.write_iolog_file)
write_iolog_close(td);
- options_mem_free(td);
td_set_runstate(td, TD_EXITED);
return (void *) (unsigned long) td->error;
}
td_set_runstate(td, TD_EXITED);
return (void *) (unsigned long) td->error;
}
@@
-1773,11
+1772,17
@@
static void run_threads(void)
int exec_run(void)
{
int exec_run(void)
{
+ struct thread_data *td;
+ int i;
+
if (nr_clients)
return fio_handle_clients();
if (nr_clients)
return fio_handle_clients();
- if (exec_profile && load_profile(exec_profile))
- return 1;
-
+ if (exec_profile) {
+ if (load_profile(exec_profile))
+ return 1;
+ free(exec_profile);
+ exec_profile = NULL;
+ }
if (!thread_number)
return 0;
if (!thread_number)
return 0;
@@
-1810,6
+1815,9
@@
int exec_run(void)
}
}
}
}
+ for_each_td(td, i)
+ fio_options_free(td);
+
cgroup_kill(cgroup_list);
sfree(cgroup_list);
sfree(cgroup_mnt);
cgroup_kill(cgroup_list);
sfree(cgroup_list);
sfree(cgroup_mnt);