diff options
author | Tejun Heo <tj@kernel.org> | 2008-08-25 06:56:14 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-10-09 02:56:08 -0400 |
commit | 074a7aca7afa6f230104e8e65eba3420263714a5 (patch) | |
tree | f418313e45bd55be8156c8a3e8f9a216cf63058d /fs | |
parent | eddb2e26b5ee3c5da68ba4bf1921ba20e2097bff (diff) |
block: move stats from disk to part0
Move stats related fields - stamp, in_flight, dkstats - from disk to
part0 and unify stat handling such that...
* part_stat_*() now updates part0 together if the specified partition
is not part0. ie. part_stat_*() are now essentially all_stat_*().
* {disk|all}_stat_*() are gone.
* part_round_stats() is updated similary. It handles part0 stats
automatically and disk_round_stats() is killed.
* part_{inc|dec}_in_fligh() is implemented which automatically updates
part0 stats for parts other than part0.
* disk_map_sector_rcu() is updated to return part0 if no part matches.
Combined with the above changes, this makes NULL special case
handling in callers unnecessary.
* Separate stats show code paths for disk are collapsed into part
stats show code paths.
* Rename disk_stat_lock/unlock() to part_stat_lock/unlock()
While at it, reposition stat handling macros a bit and add missing
parentheses around macro parameters.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/partitions/check.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/partitions/check.c b/fs/partitions/check.c index 60592d9f43b6..f517869e8d10 100644 --- a/fs/partitions/check.c +++ b/fs/partitions/check.c | |||
@@ -210,15 +210,15 @@ ssize_t part_size_show(struct device *dev, | |||
210 | return sprintf(buf, "%llu\n",(unsigned long long)p->nr_sects); | 210 | return sprintf(buf, "%llu\n",(unsigned long long)p->nr_sects); |
211 | } | 211 | } |
212 | 212 | ||
213 | static ssize_t part_stat_show(struct device *dev, | 213 | ssize_t part_stat_show(struct device *dev, |
214 | struct device_attribute *attr, char *buf) | 214 | struct device_attribute *attr, char *buf) |
215 | { | 215 | { |
216 | struct hd_struct *p = dev_to_part(dev); | 216 | struct hd_struct *p = dev_to_part(dev); |
217 | int cpu; | 217 | int cpu; |
218 | 218 | ||
219 | cpu = disk_stat_lock(); | 219 | cpu = part_stat_lock(); |
220 | part_round_stats(cpu, p); | 220 | part_round_stats(cpu, p); |
221 | disk_stat_unlock(); | 221 | part_stat_unlock(); |
222 | return sprintf(buf, | 222 | return sprintf(buf, |
223 | "%8lu %8lu %8llu %8u " | 223 | "%8lu %8lu %8llu %8u " |
224 | "%8lu %8lu %8llu %8u " | 224 | "%8lu %8lu %8llu %8u " |
@@ -575,8 +575,8 @@ void del_gendisk(struct gendisk *disk) | |||
575 | set_capacity(disk, 0); | 575 | set_capacity(disk, 0); |
576 | disk->flags &= ~GENHD_FL_UP; | 576 | disk->flags &= ~GENHD_FL_UP; |
577 | unlink_gendisk(disk); | 577 | unlink_gendisk(disk); |
578 | disk_stat_set_all(disk, 0); | 578 | part_stat_set_all(&disk->part0, 0); |
579 | disk->stamp = 0; | 579 | disk->part0.stamp = 0; |
580 | 580 | ||
581 | kobject_put(disk->part0.holder_dir); | 581 | kobject_put(disk->part0.holder_dir); |
582 | kobject_put(disk->slave_dir); | 582 | kobject_put(disk->slave_dir); |