diff options
author | Christoph Hellwig <hch@lst.de> | 2019-06-06 06:26:20 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-06-20 12:32:34 -0400 |
commit | 5d0b6e48cbef3219c0ed75e0e746c4ed259303c2 (patch) | |
tree | 44575646c0c302eb4ce682d3b554a558fe6d5679 /block/bfq-cgroup.c | |
parent | 239eeb085753d4356f731a773f363eb5bed4fe81 (diff) |
blk-cgroup: pass blkg_rwstat structures by reference
Returning a structure generates rather bad code, so switch to passing
by reference. Also don't require the structure to be zeroed and add
to the 0-initialized counters, but actually set the counters to the
calculated value.
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/bfq-cgroup.c')
-rw-r--r-- | block/bfq-cgroup.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/block/bfq-cgroup.c b/block/bfq-cgroup.c index b3796a40a61a..66abc82179f3 100644 --- a/block/bfq-cgroup.c +++ b/block/bfq-cgroup.c | |||
@@ -935,9 +935,9 @@ static u64 bfqg_prfill_stat_recursive(struct seq_file *sf, | |||
935 | static u64 bfqg_prfill_rwstat_recursive(struct seq_file *sf, | 935 | static u64 bfqg_prfill_rwstat_recursive(struct seq_file *sf, |
936 | struct blkg_policy_data *pd, int off) | 936 | struct blkg_policy_data *pd, int off) |
937 | { | 937 | { |
938 | struct blkg_rwstat sum = blkg_rwstat_recursive_sum(pd_to_blkg(pd), | 938 | struct blkg_rwstat sum; |
939 | &blkcg_policy_bfq, | 939 | |
940 | off); | 940 | blkg_rwstat_recursive_sum(pd_to_blkg(pd), &blkcg_policy_bfq, off, &sum); |
941 | return __blkg_prfill_rwstat(sf, pd, &sum); | 941 | return __blkg_prfill_rwstat(sf, pd, &sum); |
942 | } | 942 | } |
943 | 943 | ||
@@ -975,9 +975,12 @@ static int bfqg_print_stat_sectors(struct seq_file *sf, void *v) | |||
975 | static u64 bfqg_prfill_sectors_recursive(struct seq_file *sf, | 975 | static u64 bfqg_prfill_sectors_recursive(struct seq_file *sf, |
976 | struct blkg_policy_data *pd, int off) | 976 | struct blkg_policy_data *pd, int off) |
977 | { | 977 | { |
978 | struct blkg_rwstat tmp = blkg_rwstat_recursive_sum(pd->blkg, NULL, | 978 | struct blkg_rwstat tmp; |
979 | offsetof(struct blkcg_gq, stat_bytes)); | 979 | u64 sum; |
980 | u64 sum = atomic64_read(&tmp.aux_cnt[BLKG_RWSTAT_READ]) + | 980 | |
981 | blkg_rwstat_recursive_sum(pd->blkg, NULL, | ||
982 | offsetof(struct blkcg_gq, stat_bytes), &tmp); | ||
983 | sum = atomic64_read(&tmp.aux_cnt[BLKG_RWSTAT_READ]) + | ||
981 | atomic64_read(&tmp.aux_cnt[BLKG_RWSTAT_WRITE]); | 984 | atomic64_read(&tmp.aux_cnt[BLKG_RWSTAT_WRITE]); |
982 | 985 | ||
983 | return __blkg_prfill_u64(sf, pd, sum >> 9); | 986 | return __blkg_prfill_u64(sf, pd, sum >> 9); |