]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - block/blk-mq.c
block: support to account io_ticks precisely
[thirdparty/kernel/stable.git] / block / blk-mq.c
index 9f677ea85a52df604d000f0873c1e040d72c9c50..8e01e4b32e100f45a5346d22fc652736a33cd0cd 100644 (file)
@@ -996,6 +996,8 @@ static inline void blk_account_io_done(struct request *req, u64 now)
                update_io_ticks(req->part, jiffies, true);
                part_stat_inc(req->part, ios[sgrp]);
                part_stat_add(req->part, nsecs[sgrp], now - req->start_time_ns);
+               part_stat_local_dec(req->part,
+                                   in_flight[op_is_write(req_op(req))]);
                part_stat_unlock();
        }
 }
@@ -1018,6 +1020,8 @@ static inline void blk_account_io_start(struct request *req)
 
                part_stat_lock();
                update_io_ticks(req->part, jiffies, false);
+               part_stat_local_inc(req->part,
+                                   in_flight[op_is_write(req_op(req))]);
                part_stat_unlock();
        }
 }