Commit 00fe60ea authored by Song Liu's avatar Song Liu Committed by Jens Axboe

md: use part_[begin|end]_io_acct instead of disk_[begin|end]_io_acct

This enables proper statistics in /proc/diskstats for md partitions.
Signed-off-by: default avatarSong Liu <songliubraving@fb.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 7b26410b
...@@ -464,6 +464,7 @@ struct md_io { ...@@ -464,6 +464,7 @@ struct md_io {
bio_end_io_t *orig_bi_end_io; bio_end_io_t *orig_bi_end_io;
void *orig_bi_private; void *orig_bi_private;
unsigned long start_time; unsigned long start_time;
struct hd_struct *part;
}; };
static void md_end_io(struct bio *bio) static void md_end_io(struct bio *bio)
...@@ -471,7 +472,7 @@ static void md_end_io(struct bio *bio) ...@@ -471,7 +472,7 @@ static void md_end_io(struct bio *bio)
struct md_io *md_io = bio->bi_private; struct md_io *md_io = bio->bi_private;
struct mddev *mddev = md_io->mddev; struct mddev *mddev = md_io->mddev;
disk_end_io_acct(mddev->gendisk, bio_op(bio), md_io->start_time); part_end_io_acct(md_io->part, bio, md_io->start_time);
bio->bi_end_io = md_io->orig_bi_end_io; bio->bi_end_io = md_io->orig_bi_end_io;
bio->bi_private = md_io->orig_bi_private; bio->bi_private = md_io->orig_bi_private;
...@@ -517,9 +518,8 @@ static blk_qc_t md_submit_bio(struct bio *bio) ...@@ -517,9 +518,8 @@ static blk_qc_t md_submit_bio(struct bio *bio)
bio->bi_end_io = md_end_io; bio->bi_end_io = md_end_io;
bio->bi_private = md_io; bio->bi_private = md_io;
md_io->start_time = disk_start_io_acct(mddev->gendisk, md_io->start_time = part_start_io_acct(mddev->gendisk,
bio_sectors(bio), &md_io->part, bio);
bio_op(bio));
} }
/* bio could be mergeable after passing to underlayer */ /* bio could be mergeable after passing to underlayer */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment