Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa573f72 authored by Gu Zheng's avatar Gu Zheng Committed by Jens Axboe
Browse files

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: default avatarGu Zheng <guz.fnst@cn.fujitsu.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 18c0b223
Loading
Loading
Loading
Loading
+4 −25
Original line number Diff line number Diff line
@@ -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,