• J
    io-wq: fix race around io_worker grabbing · eb2de941
    Jens Axboe 提交于
    There's a small window between lookup dropping the reference to the
    worker and calling wake_up_process() on the worker task, where the worker
    itself could have exited. We ensure that the worker struct itself is
    valid, but worker->task may very well be gone by the time we issue the
    wakeup.
    
    Fix the race by using a completion triggered by the reference going to
    zero, and having exit wait for that completion before proceeding.
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    eb2de941
io-wq.c 25.1 KB