aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2020-05-13 12:49:35 +0200
committerJens Axboe <axboe@kernel.dk>2020-05-19 09:35:24 -0600
commit10ec5e86f9b840b7070b9146257a199dd0227d7e (patch)
tree55ffa87fe03b464d8f1e1dbdc2e27d5006815b25 /block
parentblock: don't call part_{inc,dec}_in_flight for blk-mq devices (diff)
downloadlinux-dev-10ec5e86f9b840b7070b9146257a199dd0227d7e.tar.xz
linux-dev-10ec5e86f9b840b7070b9146257a199dd0227d7e.zip
block: merge part_{inc,dev}_in_flight into their only callers
part_inc_in_flight and part_dec_in_flight only have one caller each, and those callers are purely for bio based drivers. Merge each function into the only caller, and remove the superflous blk-mq checks. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r--block/bio.c10
-rw-r--r--block/blk.h4
-rw-r--r--block/genhd.c20
3 files changed, 8 insertions, 26 deletions
diff --git a/block/bio.c b/block/bio.c
index 1594804fe8bc..9c101a0572ca 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -1396,13 +1396,16 @@ void generic_start_io_acct(struct request_queue *q, int op,
unsigned long sectors, struct hd_struct *part)
{
const int sgrp = op_stat_group(op);
+ int rw = op_is_write(op);
part_stat_lock();
update_io_ticks(part, jiffies, false);
part_stat_inc(part, ios[sgrp]);
part_stat_add(part, sectors[sgrp], sectors);
- part_inc_in_flight(q, part, op_is_write(op));
+ part_stat_local_inc(part, in_flight[rw]);
+ if (part->partno)
+ part_stat_local_inc(&part_to_disk(part)->part0, in_flight[rw]);
part_stat_unlock();
}
@@ -1414,12 +1417,15 @@ void generic_end_io_acct(struct request_queue *q, int req_op,
unsigned long now = jiffies;
unsigned long duration = now - start_time;
const int sgrp = op_stat_group(req_op);
+ int rw = op_is_write(req_op);
part_stat_lock();
update_io_ticks(part, now, true);
part_stat_add(part, nsecs[sgrp], jiffies_to_nsecs(duration));
- part_dec_in_flight(q, part, op_is_write(req_op));
+ part_stat_local_dec(part, in_flight[rw]);
+ if (part->partno)
+ part_stat_local_dec(&part_to_disk(part)->part0, in_flight[rw]);
part_stat_unlock();
}
diff --git a/block/blk.h b/block/blk.h
index eb09216b533a..af11fd400c72 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -345,10 +345,6 @@ void blk_queue_free_zone_bitmaps(struct request_queue *q);
static inline void blk_queue_free_zone_bitmaps(struct request_queue *q) {}
#endif
-void part_dec_in_flight(struct request_queue *q, struct hd_struct *part,
- int rw);
-void part_inc_in_flight(struct request_queue *q, struct hd_struct *part,
- int rw);
void update_io_ticks(struct hd_struct *part, unsigned long now, bool end);
struct hd_struct *disk_map_sector_rcu(struct gendisk *disk, sector_t sector);
diff --git a/block/genhd.c b/block/genhd.c
index 56e0560738c4..094ed9096496 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -119,26 +119,6 @@ static void part_stat_read_all(struct hd_struct *part, struct disk_stats *stat)
}
#endif /* CONFIG_SMP */
-void part_inc_in_flight(struct request_queue *q, struct hd_struct *part, int rw)
-{
- if (queue_is_mq(q))
- return;
-
- part_stat_local_inc(part, in_flight[rw]);
- if (part->partno)
- part_stat_local_inc(&part_to_disk(part)->part0, in_flight[rw]);
-}
-
-void part_dec_in_flight(struct request_queue *q, struct hd_struct *part, int rw)
-{
- if (queue_is_mq(q))
- return;
-
- part_stat_local_dec(part, in_flight[rw]);
- if (part->partno)
- part_stat_local_dec(&part_to_disk(part)->part0, in_flight[rw]);
-}
-
static unsigned int part_in_flight(struct request_queue *q,
struct hd_struct *part)
{