]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: destroy io-wq on exec
authorPavel Begunkov <asml.silence@gmail.com>
Sat, 27 Feb 2021 11:16:46 +0000 (11:16 +0000)
committerJens Axboe <axboe@kernel.dk>
Thu, 4 Mar 2021 13:36:22 +0000 (06:36 -0700)
commitc548dbba6c386bdebcbcfcff32554e2d4d99bf22
treeedd3c27ff43af17f22f8a52f507795f8966b5465
parent0fa6c9a447cd6079a5ffbd2a073b817f68990af7
io_uring: destroy io-wq on exec

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: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c
include/linux/io_uring.h