projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use length guarded sprintf functions
[fio.git]
/
diskutil.c
diff --git
a/diskutil.c
b/diskutil.c
index ac2f006e08597913417d293dbd3a67181fb4c223..9fc309563ea55772125f81bd97389d7988cb82fe 100644
(file)
--- a/
diskutil.c
+++ b/
diskutil.c
@@
-24,6
+24,14
@@
static void disk_util_free(struct disk_util *du)
if (du == last_du)
last_du = NULL;
if (du == last_du)
last_du = NULL;
+ while (!flist_empty(&du->slaves)) {
+ struct disk_util *slave;
+
+ slave = flist_entry(du->slaves.next, struct disk_util, slavelist);
+ flist_del(&slave->slavelist);
+ slave->users--;
+ }
+
fio_mutex_remove(du->lock);
sfree(du->name);
sfree(du);
fio_mutex_remove(du->lock);
sfree(du->name);
sfree(du);
@@
-67,10
+75,10
@@
static void update_io_tick_disk(struct disk_util *du)
struct disk_util_stat __dus, *dus, *ldus;
struct timeval t;
struct disk_util_stat __dus, *dus, *ldus;
struct timeval t;
- if (get_io_ticks(du, &__dus))
- return;
if (!du->users)
return;
if (!du->users)
return;
+ if (get_io_ticks(du, &__dus))
+ return;
dus = &du->dus;
ldus = &du->last_dus;
dus = &du->dus;
ldus = &du->last_dus;
@@
-245,7
+253,7
@@
static void find_add_disk_slaves(struct thread_data *td, char *path,
closedir(dirhandle);
}
closedir(dirhandle);
}
-static struct disk_util *disk_util_add(struct thread_data *
td, int majdev,
+static struct disk_util *disk_util_add(struct thread_data *td, int majdev,
int mindev, char *path)
{
struct disk_util *du, *__du;
int mindev, char *path)
{
struct disk_util *du, *__du;
@@
-545,7
+553,6
@@
void show_disk_util(void)
flist_for_each_safe(entry, next, &disk_list) {
flist_del(entry);
du = flist_entry(entry, struct disk_util, list);
flist_for_each_safe(entry, next, &disk_list) {
flist_del(entry);
du = flist_entry(entry, struct disk_util, list);
- du->users--;
disk_util_free(du);
}
}
disk_util_free(du);
}
}