io_uring: Remove unneeded test in io_run_task_work_sig()
authorOlivier Langlois <olivier@trillion01.com>
Wed, 16 Feb 2022 19:53:42 +0000 (14:53 -0500)
committerJens Axboe <axboe@kernel.dk>
Thu, 10 Mar 2022 13:32:49 +0000 (06:32 -0700)
Avoid testing TIF_NOTIFY_SIGNAL twice by calling task_sigpending()
directly from io_run_task_work_sig()

Signed-off-by: Olivier Langlois <olivier@trillion01.com>
Link: https://lore.kernel.org/r/bd7c0495f7656e803e5736708591bb665e6eaacd.1645041650.git.olivier@trillion01.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 5ec24b0438f1399584d2ac9460c8c13c347f1f7a..8d3454a243b43c7f8b7e61f4b15a81fb97a803e8 100644 (file)
@@ -7704,11 +7704,11 @@ static int io_run_task_work_sig(void)
 {
        if (io_run_task_work())
                return 1;
-       if (!signal_pending(current))
-               return 0;
        if (test_thread_flag(TIF_NOTIFY_SIGNAL))
                return -ERESTARTSYS;
-       return -EINTR;
+       if (task_sigpending(current))
+               return -EINTR;
+       return 0;
 }
 
 /* when returns >0, the caller should retry */