Now that unshare_files happens in begin_new_exec after the point of no return, io_uring_task_cancel can also happen later.
Effectively this means io_uring activities for a task are only canceled when exec succeeds. Signed-off-by: Eric W. Biederman <[email protected]> --- This is against my exec-for-v5.11 branch fs/exec.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index 14fae2ec1c9d..9e9368603168 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -1257,6 +1257,11 @@ int begin_new_exec(struct linux_binprm * bprm) if (retval) goto out; + /* + * Cancel any io_uring activity across execve + */ + io_uring_task_cancel(); + /* Ensure the files table is not shared. */ retval = unshare_files(); if (retval) @@ -1783,11 +1788,6 @@ static int bprm_execve(struct linux_binprm *bprm, struct file *file; int retval; - /* - * Cancel any io_uring activity across execve - */ - io_uring_task_cancel(); - retval = prepare_bprm_creds(bprm); if (retval) return retval; -- 2.20.1

