dm: revert partial fix for redundant bio-based IO accounting
Reverts a1e1cb72d9
("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>
This commit is contained in:
parent
e45c47d1f9
commit
f524d9c95f
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user