io_uring: run task_work on io_uring_register()
authorPavel Begunkov <asml.silence@gmail.com>
Sat, 20 Feb 2021 15:17:18 +0000 (15:17 +0000)
committerJens Axboe <axboe@kernel.dk>
Mon, 22 Feb 2021 00:18:56 +0000 (17:18 -0700)
Do run task_work before io_uring_register(), that might make a first
quiesce round much nicer. We generally do that for any syscall invocation
to avoid spurious -EINTR/-ERESTARTSYS, for task_work that we generate.
This patch brings io_uring_register() inline with the two other io_uring
syscalls.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 1501f20..3ecc3c0 100644 (file)
@@ -10200,6 +10200,8 @@ SYSCALL_DEFINE4(io_uring_register, unsigned int, fd, unsigned int, opcode,
 
        ctx = f.file->private_data;
 
+       io_run_task_work();
+
        mutex_lock(&ctx->uring_lock);
        ret = __io_uring_register(ctx, opcode, arg, nr_args);
        mutex_unlock(&ctx->uring_lock);