OSDN Git Service

blk-flush: reuse rq queuelist in flush state machine
authorChengming Zhou <zhouchengming@bytedance.com>
Mon, 17 Jul 2023 04:00:58 +0000 (12:00 +0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 17 Jul 2023 14:18:21 +0000 (08:18 -0600)
commit81ada09cc25e4bf2de7d2951925fb409338a545d
treeb486628026924a3c46956cafdce6d9604a135a29
parentb175c86739d38e41044d3136065f092a6d95aee6
blk-flush: reuse rq queuelist in flush state machine

Since we don't need to maintain inflight flush_data requests list
anymore, we can reuse rq->queuelist for flush pending list.

Note in mq_flush_data_end_io(), we need to re-initialize rq->queuelist
before reusing it in the state machine when end, since the rq->rq_next
also reuse it, may have corrupted rq->queuelist by the driver.

This patch decrease the size of struct request by 16 bytes.

Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20230717040058.3993930-5-chengming.zhou@linux.dev
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-flush.c
include/linux/blk-mq.h