Really fix dm/md slave disk utilization

We should just handle it internally in the disk util inc/dec. Make
it iterate each slave and modify their usage count, too.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/diskutil.h b/diskutil.h
index 35fd0a5..dc89cc5 100644
--- a/diskutil.h
+++ b/diskutil.h
@@ -47,22 +47,31 @@
 	unsigned long users;
 };
 
-static inline void disk_util_inc(struct disk_util *du)
+static inline void disk_util_mod(struct disk_util *du, int val)
 {
 	if (du) {
+		struct flist_head *n;
+
 		fio_mutex_down(du->lock);
-		du->users++;
+		du->users += val;
+
+		flist_for_each(n, &du->slavelist) {
+			struct disk_util *slave;
+
+			slave = flist_entry(n, struct disk_util, slavelist);
+			slave->users += val;
+		}
 		fio_mutex_up(du->lock);
 	}
 }
+static inline void disk_util_inc(struct disk_util *du)
+{
+	disk_util_mod(du, 1);
+}
 
 static inline void disk_util_dec(struct disk_util *du)
 {
-	if (du) {
-		fio_mutex_down(du->lock);
-		du->users--;
-		fio_mutex_up(du->lock);
-	}
+	disk_util_mod(du, -1);
 }
 
 #define DISK_UTIL_MSEC	(250)