@@ -601,13 +601,8 @@ static void request_endio(struct bio *bio, int error)
601
601
static void bio_complete (struct search * s )
602
602
{
603
603
if (s -> orig_bio ) {
604
- int cpu , rw = bio_data_dir (s -> orig_bio );
605
- unsigned long duration = jiffies - s -> start_time ;
606
-
607
- cpu = part_stat_lock ();
608
- part_round_stats (cpu , & s -> d -> disk -> part0 );
609
- part_stat_add (cpu , & s -> d -> disk -> part0 , ticks [rw ], duration );
610
- part_stat_unlock ();
604
+ generic_end_io_acct (bio_data_dir (s -> orig_bio ),
605
+ & s -> d -> disk -> part0 , s -> start_time );
611
606
612
607
trace_bcache_request_end (s -> d , s -> orig_bio );
613
608
bio_endio (s -> orig_bio , s -> iop .error );
@@ -959,12 +954,9 @@ static void cached_dev_make_request(struct request_queue *q, struct bio *bio)
959
954
struct search * s ;
960
955
struct bcache_device * d = bio -> bi_bdev -> bd_disk -> private_data ;
961
956
struct cached_dev * dc = container_of (d , struct cached_dev , disk );
962
- int cpu , rw = bio_data_dir (bio );
957
+ int rw = bio_data_dir (bio );
963
958
964
- cpu = part_stat_lock ();
965
- part_stat_inc (cpu , & d -> disk -> part0 , ios [rw ]);
966
- part_stat_add (cpu , & d -> disk -> part0 , sectors [rw ], bio_sectors (bio ));
967
- part_stat_unlock ();
959
+ generic_start_io_acct (rw , bio_sectors (bio ), & d -> disk -> part0 );
968
960
969
961
bio -> bi_bdev = dc -> bdev ;
970
962
bio -> bi_iter .bi_sector += dc -> sb .data_offset ;
@@ -1074,12 +1066,9 @@ static void flash_dev_make_request(struct request_queue *q, struct bio *bio)
1074
1066
struct search * s ;
1075
1067
struct closure * cl ;
1076
1068
struct bcache_device * d = bio -> bi_bdev -> bd_disk -> private_data ;
1077
- int cpu , rw = bio_data_dir (bio );
1069
+ int rw = bio_data_dir (bio );
1078
1070
1079
- cpu = part_stat_lock ();
1080
- part_stat_inc (cpu , & d -> disk -> part0 , ios [rw ]);
1081
- part_stat_add (cpu , & d -> disk -> part0 , sectors [rw ], bio_sectors (bio ));
1082
- part_stat_unlock ();
1071
+ generic_start_io_acct (rw , bio_sectors (bio ), & d -> disk -> part0 );
1083
1072
1084
1073
s = search_alloc (bio , d );
1085
1074
cl = & s -> cl ;
0 commit comments