• Jens Axboe's avatar
    io-wq: kill hashed waitqueue before manager exits · 09ca6c40
    Jens Axboe authored
    If we race with shutting down the io-wq context and someone queueing
    a hashed entry, then we can exit the manager with it armed. If it then
    triggers after the manager has exited, we can have a use-after-free where
    io_wqe_hash_wake() attempts to wake a now gone manager process.
    
    Move the killing of the hashed write queue into the manager itself, so
    that we know we've killed it before the task exits.
    
    Fixes: e941894e ("io-wq: make buffered file write hashed work map per-ctx")
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    09ca6c40
io-wq.c 26.1 KB