io_uring: add missing finish_wait() in io_sq_thread()
authorHillf Danton <hdanton@sina.com>
Wed, 1 Apr 2020 09:19:33 +0000 (17:19 +0800)
committerJens Axboe <axboe@kernel.dk>
Wed, 1 Apr 2020 13:02:55 +0000 (07:02 -0600)
Add it to pair with prepare_to_wait() in an attempt to avoid
anything weird in the field.

Fixes: b41e98524e42 ("io_uring: add per-task callback handler")
Reported-by: syzbot+0c3370f235b74b3cfd97@syzkaller.appspotmail.com
Signed-off-by: Hillf Danton <hdanton@sina.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 7b50879046405c9966d512181036d1a9ce0aae2a..10645077d6b4a32fef582a6cfb880aab0bbb7d26 100644 (file)
@@ -5968,6 +5968,7 @@ static int io_sq_thread(void *data)
                                }
                                if (current->task_works) {
                                        task_work_run();
+                                       finish_wait(&ctx->sqo_wait, &wait);
                                        continue;
                                }
                                if (signal_pending(current))