diff options
author | Guoqing Jiang <jgq516@gmail.com> | 2021-05-25 17:46:17 +0800 |
---|---|---|
committer | Song Liu <song@kernel.org> | 2021-06-14 22:32:06 -0700 |
commit | 10764815ff4728d2c57da677cd5d3dd6f446cf5f (patch) | |
tree | 37221b5d812dc01a4132c5860446adec6aaf2e58 /drivers/md/raid0.c | |
parent | ad3fc798800fb7ca04c1dfc439dba946818048d8 (diff) |
md: add io accounting for raid0 and raid5
We introduce a new bioset (io_acct_set) for raid0 and raid5 since they
don't own clone infrastructure to accounting io. And the bioset is added
to mddev instead of to raid0 and raid5 layer, because with this way, we
can put common functions to md.h and reuse them in raid0 and raid5.
Also struct md_io_acct is added accordingly which includes io start_time,
the origin bio and cloned bio. Then we can call bio_{start,end}_io_acct
to get related io status.
Signed-off-by: Guoqing Jiang <jiangguoqing@kylinos.cn>
Signed-off-by: Song Liu <song@kernel.org>
Diffstat (limited to 'drivers/md/raid0.c')
-rw-r--r-- | drivers/md/raid0.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c index e5d7411cba9b..62c8b6adac70 100644 --- a/drivers/md/raid0.c +++ b/drivers/md/raid0.c @@ -546,6 +546,9 @@ static bool raid0_make_request(struct mddev *mddev, struct bio *bio) bio = split; } + if (bio->bi_pool != &mddev->bio_set) + md_account_bio(mddev, &bio); + orig_sector = sector; zone = find_zone(mddev->private, §or); switch (conf->layout) { |