@@ -602,13 +602,10 @@ static void end_io_acct(struct dm_io *io)
602
602
struct mapped_device * md = io -> md ;
603
603
struct bio * bio = io -> bio ;
604
604
unsigned long duration = jiffies - io -> start_time ;
605
- int pending , cpu ;
605
+ int pending ;
606
606
int rw = bio_data_dir (bio );
607
607
608
- cpu = part_stat_lock ();
609
- part_round_stats (cpu , & dm_disk (md )-> part0 );
610
- part_stat_add (cpu , & dm_disk (md )-> part0 , ticks [rw ], duration );
611
- part_stat_unlock ();
608
+ generic_end_io_acct (rw , & dm_disk (md )-> part0 , io -> start_time );
612
609
613
610
if (unlikely (dm_stats_used (& md -> stats )))
614
611
dm_stats_account_io (& md -> stats , bio -> bi_rw , bio -> bi_iter .bi_sector ,
@@ -1648,16 +1645,12 @@ static void _dm_request(struct request_queue *q, struct bio *bio)
1648
1645
{
1649
1646
int rw = bio_data_dir (bio );
1650
1647
struct mapped_device * md = q -> queuedata ;
1651
- int cpu ;
1652
1648
int srcu_idx ;
1653
1649
struct dm_table * map ;
1654
1650
1655
1651
map = dm_get_live_table (md , & srcu_idx );
1656
1652
1657
- cpu = part_stat_lock ();
1658
- part_stat_inc (cpu , & dm_disk (md )-> part0 , ios [rw ]);
1659
- part_stat_add (cpu , & dm_disk (md )-> part0 , sectors [rw ], bio_sectors (bio ));
1660
- part_stat_unlock ();
1653
+ generic_start_io_acct (rw , bio_sectors (bio ), & dm_disk (md )-> part0 );
1661
1654
1662
1655
/* if we're suspended, we have to queue this io for later */
1663
1656
if (unlikely (test_bit (DMF_BLOCK_IO_FOR_SUSPEND , & md -> flags ))) {
0 commit comments