Skip to content

Commit aae4933

Browse files
Gu Zhengaxboe
authored andcommitted
md/bcache: use generic io stats accounting functions to simplify io stat accounting
Use generic io stats accounting help functions (generic_{start,end}_io_acct) to simplify io stat accounting. Signed-off-by: Gu Zheng <[email protected]> Acked-by: Kent Overstreet <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
1 parent f74cd63 commit aae4933

File tree

1 file changed

+6
-17
lines changed

1 file changed

+6
-17
lines changed

drivers/md/bcache/request.c

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -601,13 +601,8 @@ static void request_endio(struct bio *bio, int error)
601601
static void bio_complete(struct search *s)
602602
{
603603
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);
611606

612607
trace_bcache_request_end(s->d, s->orig_bio);
613608
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)
959954
struct search *s;
960955
struct bcache_device *d = bio->bi_bdev->bd_disk->private_data;
961956
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);
963958

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);
968960

969961
bio->bi_bdev = dc->bdev;
970962
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)
10741066
struct search *s;
10751067
struct closure *cl;
10761068
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);
10781070

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);
10831072

10841073
s = search_alloc(bio, d);
10851074
cl = &s->cl;

0 commit comments

Comments
 (0)