summaryrefslogtreecommitdiff
path: root/kernel/freezer.c
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2011-10-11 21:20:55 +0200
committerRafael J. Wysocki <rjw@sisk.pl>2011-10-16 23:30:37 +0200
commit27920651fe0d16a25632dc238e81b54f3a504869 (patch)
tree3f3c5c21b3267329c0b3718717c4c313b5e2115b /kernel/freezer.c
parentf126f7334f72e2fd1b7a62bba20c488b86e6e7c4 (diff)
downloadlwn-27920651fe0d16a25632dc238e81b54f3a504869.tar.gz
lwn-27920651fe0d16a25632dc238e81b54f3a504869.zip
PM / Freezer: Make fake_signal_wake_up() wake TASK_KILLABLE tasks too
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>
Diffstat (limited to 'kernel/freezer.c')
-rw-r--r--kernel/freezer.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/freezer.c b/kernel/freezer.c
index 7b01de98bb6a..66a594e8ad2f 100644
--- a/kernel/freezer.c
+++ b/kernel/freezer.c
@@ -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);
}