diff options
author | Gu Zheng <guz.fnst@cn.fujitsu.com> | 2014-11-24 11:05:27 +0800 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-11-24 08:05:18 -0700 |
commit | fa573f72790c2c2b9bfd758c5d33959af4a39915 (patch) | |
tree | 59faf0413e2b2cd7dfaaccdbcad4047526fe78e3 /drivers/block/rsxx | |
parent | 18c0b223cf9901727ef3b02da6711ac930b4e5d4 (diff) | |
download | linux-stable-fa573f72790c2c2b9bfd758c5d33959af4a39915.tar.gz linux-stable-fa573f72790c2c2b9bfd758c5d33959af4a39915.tar.bz2 linux-stable-fa573f72790c2c2b9bfd758c5d33959af4a39915.zip |
block/rsxx: 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 <guz.fnst@cn.fujitsu.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers/block/rsxx')
-rw-r--r-- | drivers/block/rsxx/dev.c | 29 |
1 files changed, 4 insertions, 25 deletions
diff --git a/drivers/block/rsxx/dev.c b/drivers/block/rsxx/dev.c index 40ee7705df63..ac8c62cb4875 100644 --- a/drivers/block/rsxx/dev.c +++ b/drivers/block/rsxx/dev.c @@ -112,37 +112,16 @@ static const struct block_device_operations rsxx_fops = { static void disk_stats_start(struct rsxx_cardinfo *card, struct bio *bio) { - struct hd_struct *part0 = &card->gendisk->part0; - int rw = bio_data_dir(bio); - int cpu; - - cpu = part_stat_lock(); - - part_round_stats(cpu, part0); - part_inc_in_flight(part0, rw); - - part_stat_unlock(); + generic_start_io_acct(bio_data_dir(bio), bio_sectors(bio), + &card->gendisk->part0); } static void disk_stats_complete(struct rsxx_cardinfo *card, struct bio *bio, unsigned long start_time) { - struct hd_struct *part0 = &card->gendisk->part0; - unsigned long duration = jiffies - start_time; - int rw = bio_data_dir(bio); - int cpu; - - cpu = part_stat_lock(); - - part_stat_add(cpu, part0, sectors[rw], bio_sectors(bio)); - part_stat_inc(cpu, part0, ios[rw]); - part_stat_add(cpu, part0, ticks[rw], duration); - - part_round_stats(cpu, part0); - part_dec_in_flight(part0, rw); - - part_stat_unlock(); + generic_end_io_acct(bio_data_dir(bio), &card->gendisk->part0, + start_time); } static void bio_dma_done_cb(struct rsxx_cardinfo *card, |