mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
blk-iolatency: flush enable_work after going offline
blkcg_iolatency_exit() flushes enable_work before it deactivates the
policy, but iolatency_pd_offline() schedules it again for the last group
with a target, so the blk_iolatency is freed with the work queued. Flush
it after the deactivation.
Fixes: 8a177a36da ("blk-iolatency: Fix inflight count imbalances and IO hangs on offline")
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://patch.msgid.link/20261028164415.1262013-24-axboe@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
4def096314
commit
020f61242d
|
|
@ -637,8 +637,9 @@ static void blkcg_iolatency_exit(struct rq_qos *rqos)
|
|||
struct blk_iolatency *blkiolat = BLKIOLATENCY(rqos);
|
||||
|
||||
timer_shutdown_sync(&blkiolat->timer);
|
||||
flush_work(&blkiolat->enable_work);
|
||||
blkcg_deactivate_policy(rqos->disk, &blkcg_policy_iolatency);
|
||||
/* iolatency_pd_offline() schedules it for the last group with a target */
|
||||
flush_work(&blkiolat->enable_work);
|
||||
kfree(blkiolat);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user