• Pavel Begunkov's avatar
    io_uring: destroy io-wq on exec · 8452d4a6
    Pavel Begunkov authored
    Destroy current's io-wq backend and tctx on __io_uring_task_cancel(),
    aka exec(). Looks it's not strictly necessary, because it will be done
    at some point when the task dies and changes of creds/files/etc. are
    handled, but better to do that earlier to free io-wq and not potentially
    lock previous mm and other resources for the time being.
    
    It's safe to do because we wait for all requests of the current task to
    complete, so no request will use tctx afterwards. Note, that
    io_uring_files_cancel() may leave some requests for later reaping, so it
    leaves tctx intact, that's ok as the task is dying anyway.
    Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    8452d4a6
io_uring.c 241 KB