summaryrefslogtreecommitdiff
path: root/diskutil.c
diff options
context:
space:
mode:
authorJens Axboe <jaxboe@fusionio.com>2010-06-21 12:40:53 +0200
committerJens Axboe <jaxboe@fusionio.com>2010-06-21 12:40:53 +0200
commitb8d541d5705ef74307277d541ca9153ab8844096 (patch)
treeca488655f48876bdb3305b6b7c9bd0df01d0962a /diskutil.c
parent90b97ac3bc4368b79300207c796bcfbb828d07b9 (diff)
downloadfio-b8d541d5705ef74307277d541ca9153ab8844096.tar.gz
Fix disk util for slaves
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'diskutil.c')
-rw-r--r--diskutil.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/diskutil.c b/diskutil.c
index 92f8caa2..4f705c9b 100644
--- 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;
+ 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);
@@ -236,8 +244,10 @@ static void find_add_disk_slaves(struct thread_data *td, char *path,
/* Should probably use an assert here. slavedu should
* always be present at this point. */
- if (slavedu)
+ if (slavedu) {
+ slavedu->users++;
flist_add_tail(&slavedu->slavelist, &masterdu->slaves);
+ }
}
closedir(dirhandle);