X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=diskutil.h;h=dc89cc51ac5261d81afaa3f8383cacb3e68ff123;hp=35fd0a5953b97c130f331c4691d9d4e6067450f5;hb=e99ca81de760ab146dbba4105a8691c25cb1dec6;hpb=631c95e0ef133f5a1b014deea4f9cebcb1cd4446 diff --git a/diskutil.h b/diskutil.h index 35fd0a59..dc89cc51 100644 --- a/diskutil.h +++ b/diskutil.h @@ -47,22 +47,31 @@ struct disk_util { 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)