diff options
author | Ming Lei <ming.lei@redhat.com> | 2022-03-08 08:51:48 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-03-09 05:39:59 +0300 |
commit | e02657ea7b86d1c41e095f49e4f7c7bb24bbee64 (patch) | |
tree | 5b5edca30535d1b34d9c79078c7ef6cf2710b997 /block | |
parent | 41fa722239b46f0c033da94746212344175cdaa0 (diff) | |
download | linux-e02657ea7b86d1c41e095f49e4f7c7bb24bbee64.tar.xz |
blk-mq: handle already freed tags gracefully in blk_mq_free_rqs
To simplify further changes allow for double calling blk_mq_free_rqs on
a queue.
Signed-off-by: Ming Lei <ming.lei@redhat.com>
[hch: split out from a larger patch]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20220308055200.735835-3-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-mq.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c index 40f634ab7026..f7ef8e2ab935 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -3071,6 +3071,9 @@ void blk_mq_free_rqs(struct blk_mq_tag_set *set, struct blk_mq_tags *tags, struct blk_mq_tags *drv_tags; struct page *page; + if (list_empty(&tags->page_list)) + return; + if (blk_mq_is_shared_tags(set->flags)) drv_tags = set->shared_tags; else |