Message ID | 1666780513-121650-1-git-send-email-john.garry@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] blk-mq: Properly init requests from blk_mq_alloc_request_hctx() | expand |
On Wed, Oct 26, 2022 at 6:04 PM John Garry <john.garry@huawei.com> wrote: > > Function blk_mq_alloc_request_hctx() is missing zeroing/init of rq->bio, > biotail, __sector, and __data_len members, which blk_mq_alloc_request() > has, so duplicate what we do in blk_mq_alloc_request(). > > Fixes: 1f5bd336b9150 ("blk-mq: add blk_mq_alloc_request_hctx") > Signed-off-by: John Garry <john.garry@huawei.com> Reviewed-by: Ming Lei <ming.lei@redhat.com>
Looks good:
Reviewed-by: Christoph Hellwig <hch@lst.de>
On Wed, 26 Oct 2022 18:35:13 +0800, John Garry wrote: > Function blk_mq_alloc_request_hctx() is missing zeroing/init of rq->bio, > biotail, __sector, and __data_len members, which blk_mq_alloc_request() > has, so duplicate what we do in blk_mq_alloc_request(). > > Applied, thanks! [1/1] blk-mq: Properly init requests from blk_mq_alloc_request_hctx() commit: e3c5a78cdb6237bfb9641b63cccf366325229eec Best regards,
diff --git a/block/blk-mq.c b/block/blk-mq.c index 497c413bce80..a1b6afe43913 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -611,6 +611,7 @@ struct request *blk_mq_alloc_request_hctx(struct request_queue *q, .nr_tags = 1, }; u64 alloc_time_ns = 0; + struct request *rq; unsigned int cpu; unsigned int tag; int ret; @@ -660,8 +661,12 @@ struct request *blk_mq_alloc_request_hctx(struct request_queue *q, tag = blk_mq_get_tag(&data); if (tag == BLK_MQ_NO_TAG) goto out_queue_exit; - return blk_mq_rq_ctx_init(&data, blk_mq_tags_from_data(&data), tag, + rq = blk_mq_rq_ctx_init(&data, blk_mq_tags_from_data(&data), tag, alloc_time_ns); + rq->__data_len = 0; + rq->__sector = (sector_t) -1; + rq->bio = rq->biotail = NULL; + return rq; out_queue_exit: blk_queue_exit(q);
Function blk_mq_alloc_request_hctx() is missing zeroing/init of rq->bio, biotail, __sector, and __data_len members, which blk_mq_alloc_request() has, so duplicate what we do in blk_mq_alloc_request(). Fixes: 1f5bd336b9150 ("blk-mq: add blk_mq_alloc_request_hctx") Signed-off-by: John Garry <john.garry@huawei.com> --- Difference to v1: - init rq members in blk_mq_alloc_request_hctx(), rather than blk_mq_rq_ctx_init() (Ming Lei)