Skip to content

Commit

Permalink
PM / Freezer: Make fake_signal_wake_up() wake TASK_KILLABLE tasks too
Browse files Browse the repository at this point in the history
TASK_KILLABLE is often used to put tasks to sleep for quite some time.
One of the most common uses is to put tasks to sleep while waiting for
replies from a server on a networked filesystem (such as CIFS or NFS).

Unfortunately, fake_signal_wake_up does not currently wake up tasks
that are sleeping in TASK_KILLABLE state. This means that even if the
code were in place to allow them to freeze while in this sleep, it
wouldn't work anyway.

This patch changes this function to wake tasks in this state as well.
This should be harmless -- if the code doing the sleeping doesn't have
handling to deal with freezer events, it should just go back to sleep.
If it does, then this will allow that code to do the right thing.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
  • Loading branch information
Jeff Layton authored and Rafael J. Wysocki committed Oct 16, 2011
1 parent f126f73 commit 2792065
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion kernel/freezer.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ static void fake_signal_wake_up(struct task_struct *p)
unsigned long flags;

spin_lock_irqsave(&p->sighand->siglock, flags);
signal_wake_up(p, 0);
signal_wake_up(p, 1);
spin_unlock_irqrestore(&p->sighand->siglock, flags);
}

Expand Down

0 comments on commit 2792065

Please sign in to comment.