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

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
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -464,6 +464,7 @@ struct md_io {
	bio_end_io_t *orig_bi_end_io;
	void *orig_bi_private;
	unsigned long start_time;
	struct hd_struct *part;
};

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 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_private = md_io->orig_bi_private;
@@ -517,9 +518,8 @@ static blk_qc_t md_submit_bio(struct bio *bio)
		bio->bi_end_io = md_end_io;
		bio->bi_private = md_io;

		md_io->start_time = disk_start_io_acct(mddev->gendisk,
						       bio_sectors(bio),
						       bio_op(bio));
		md_io->start_time = part_start_io_acct(mddev->gendisk,
						       &md_io->part, bio);
	}

	/* bio could be mergeable after passing to underlayer */