block: call rq_qos_exit() after queue is frozen
authorMing Lei <ming.lei@redhat.com>
Wed, 24 Oct 2018 13:18:09 +0000 (21:18 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 1 Dec 2019 08:17:06 +0000 (09:17 +0100)
commit9663d294ae28ccd970bd0f1e8abbd8d7eb630943
tree46b311669687f17cb419a32cc70e89edb168864e
parenta125df22d134c341a1e7a998958ecaa2969256cd
block: call rq_qos_exit() after queue is frozen

[ Upstream commit c57cdf7a9e51d97a43e29b8f4a04157875104000 ]

rq_qos_exit() removes the current q->rq_qos, this action has to be
done after queue is frozen, otherwise the IO queue path may never
be waken up, then IO hang is caused.

So fixes this issue by moving rq_qos_exit() after queue is frozen.

Cc: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
block/blk-core.c
block/blk-sysfs.c