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);
/* 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);
}
-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;