kernel: freezer should treat PF_IO_WORKER like PF_KTHREAD for freezing
authorJens Axboe <axboe@kernel.dk>
Sat, 13 Mar 2021 03:20:42 +0000 (20:20 -0700)
committerJens Axboe <axboe@kernel.dk>
Sat, 13 Mar 2021 03:20:42 +0000 (20:20 -0700)
Don't send fake signals to PF_IO_WORKER threads, they don't accept
signals. Just treat them like kthreads in this regard, all they need
is a wakeup as no forced kernel/user transition is needed.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
kernel/freezer.c

index dc520f01f99ddc053366ab5fdbaffd126f519c24..1a2d57d1327cd6d467d8ce86117bc2174652068e 100644 (file)
@@ -134,7 +134,7 @@ bool freeze_task(struct task_struct *p)
                return false;
        }
 
-       if (!(p->flags & PF_KTHREAD))
+       if (!(p->flags & (PF_KTHREAD | PF_IO_WORKER)))
                fake_signal_wake_up(p);
        else
                wake_up_state(p, TASK_INTERRUPTIBLE);