summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorOmar Sandoval <osandov@fb.com>2017-03-16 16:46:14 +0100
committerJens Axboe <axboe@fb.com>2017-03-21 17:00:55 +0100
commit7d8d00140715a115193bf502fa3b0cfe620f0dd9 (patch)
treed4a2c36663631ca44d278a346f7f9e994c1be5fb /block
parentLinux 4.11-rc3 (diff)
downloadlinux-7d8d00140715a115193bf502fa3b0cfe620f0dd9.tar.xz
linux-7d8d00140715a115193bf502fa3b0cfe620f0dd9.zip
blk-stat: fix blk_stat_sum() if all samples are batched
We need to flush the batch _before_ we check the number of samples, otherwise we'll miss all of the batched samples. Fixes: cf43e6b ("block: add scalable completion tracking of requests") Signed-off-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block')
-rw-r--r--block/blk-stat.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/block/blk-stat.c b/block/blk-stat.c
index 9b43efb8933f..186fcb981e9b 100644
--- a/block/blk-stat.c
+++ b/block/blk-stat.c
@@ -30,11 +30,11 @@ static void blk_stat_flush_batch(struct blk_rq_stat *stat)
static void blk_stat_sum(struct blk_rq_stat *dst, struct blk_rq_stat *src)
{
+ blk_stat_flush_batch(src);
+
if (!src->nr_samples)
return;
- blk_stat_flush_batch(src);
-
dst->min = min(dst->min, src->min);
dst->max = max(dst->max, src->max);