Re: [PATCH] block: propagate in_flight to whole disk on partition I/O
From: Christoph Hellwig
Date: Fri May 22 2026 - 08:37:04 EST
On Fri, May 22, 2026 at 07:37:51PM +0800, Tang Yizhou wrote:
> --- a/block/blk-core.c
> +++ b/block/blk-core.c
> @@ -1043,6 +1043,8 @@ unsigned long bdev_start_io_acct(struct block_device *bdev, enum req_op op,
> part_stat_lock();
> update_io_ticks(bdev, start_time, false);
> part_stat_local_inc(bdev, in_flight[op_is_write(op)]);
> + if (bdev_is_partition(bdev))
> + part_stat_local_inc(bdev_whole(bdev), in_flight[op_is_write(op)]);
overly lone line.
> + if (bdev_is_partition(bdev))
> + part_stat_local_dec(bdev_whole(bdev), in_flight[op_is_write(op)]);
Same.
> }
> @@ -1144,6 +1147,9 @@ 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))]);
> + if (bdev_is_partition(req->part))
> + part_stat_local_inc(bdev_whole(req->part),
> + in_flight[op_is_write(req_op(req))]);
and tis duplicates the above logic. Mabye factor the common code
into two little helpers?