aboutsummaryrefslogtreecommitdiffstats
path: root/fs/partitions
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2008-08-25 06:56:14 -0400
committerJens Axboe <jens.axboe@oracle.com>2008-10-09 02:56:08 -0400
commit074a7aca7afa6f230104e8e65eba3420263714a5 (patch)
treef418313e45bd55be8156c8a3e8f9a216cf63058d /fs/partitions
parenteddb2e26b5ee3c5da68ba4bf1921ba20e2097bff (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/partitions')
-rw-r--r--fs/partitions/check.c12
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
213static ssize_t part_stat_show(struct device *dev, 213ssize_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);