blk-mq: fix potential deadlock while nr_requests grown
authorYu Kuai <yukuai3@huawei.com>
Wed, 10 Sep 2025 08:04:43 +0000 (16:04 +0800)
committerJens Axboe <axboe@kernel.dk>
Wed, 10 Sep 2025 11:25:56 +0000 (05:25 -0600)
commitb86433721f46d934940528f28d49c1dedb690df1
tree75ad6bcb243438955ceb8031a38321b4f1ca419c
parent6293e336f6d7d3f3415346ce34993b3398846166
blk-mq: fix potential deadlock while nr_requests grown

Allocate and free sched_tags while queue is freezed can deadlock[1],
this is a long term problem, hence allocate memory before freezing
queue and free memory after queue is unfreezed.

[1] https://lore.kernel.org/all/0659ea8d-a463-47c8-9180-43c719e106eb@linux.ibm.com/
Fixes: e3a2b3f931f5 ("blk-mq: allow changing of queue depth through sysfs")

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Nilay Shroff <nilay@linux.ibm.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq.c
block/blk-mq.h
block/blk-sysfs.c