projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Really fix dm/md slave disk utilization
[fio.git]
/
diskutil.h
diff --git
a/diskutil.h
b/diskutil.h
index 35fd0a5953b97c130f331c4691d9d4e6067450f5..dc89cc51ac5261d81afaa3f8383cacb3e68ff123 100644
(file)
--- a/
diskutil.h
+++ b/
diskutil.h
@@
-47,22
+47,31
@@
struct disk_util {
unsigned long users;
};
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) {
{
if (du) {
+ struct flist_head *n;
+
fio_mutex_down(du->lock);
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);
}
}
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)
{
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)
}
#define DISK_UTIL_MSEC (250)