diff options
author | Mike Snitzer <snitzer@redhat.com> | 2022-01-28 10:58:40 -0500 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-01-28 12:28:15 -0700 |
commit | f524d9c95fab54783d0038f7a3e8c014d5b56857 (patch) | |
tree | e140869495559d54d73f807de5d8d3da610107a7 /drivers/md | |
parent | e45c47d1f94e0cc7b6b079fdb4bcce2995e2adc4 (diff) | |
download | linux-stable-f524d9c95fab54783d0038f7a3e8c014d5b56857.tar.gz linux-stable-f524d9c95fab54783d0038f7a3e8c014d5b56857.tar.bz2 linux-stable-f524d9c95fab54783d0038f7a3e8c014d5b56857.zip |
dm: revert partial fix for redundant bio-based IO accounting
Reverts a1e1cb72d9649 ("dm: fix redundant IO accounting for bios that
need splitting") because it was too narrow in scope (only addressed
redundant 'sectors[]' accounting and not ios, nsecs[], etc).
Cc: stable@vger.kernel.org
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Link: https://lore.kernel.org/r/20220128155841.39644-3-snitzer@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/dm.c | 15 |
1 files changed, 0 insertions, 15 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index c0ae8087c602..9849114b3c08 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -1442,9 +1442,6 @@ static void init_clone_info(struct clone_info *ci, struct mapped_device *md, ci->sector = bio->bi_iter.bi_sector; } -#define __dm_part_stat_sub(part, field, subnd) \ - (part_stat_get(part, field) -= (subnd)) - /* * Entry point to split a bio into clones and submit them to the targets. */ @@ -1480,18 +1477,6 @@ static void __split_and_process_bio(struct mapped_device *md, GFP_NOIO, &md->queue->bio_split); ci.io->orig_bio = b; - /* - * Adjust IO stats for each split, otherwise upon queue - * reentry there will be redundant IO accounting. - * NOTE: this is a stop-gap fix, a proper fix involves - * significant refactoring of DM core's bio splitting - * (by eliminating DM's splitting and just using bio_split) - */ - part_stat_lock(); - __dm_part_stat_sub(dm_disk(md)->part0, - sectors[op_stat_group(bio_op(bio))], ci.sector_count); - part_stat_unlock(); - bio_chain(b, bio); trace_block_split(b, bio->bi_iter.bi_sector); submit_bio_noacct(bio); |