From 435d5a53c2f4dc809f03ef663a19972af281c812 Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Mon, 21 Nov 2011 12:32:24 -0800 Subject: [PATCH] --- yaml --- r: 280371 b: refs/heads/master c: 85f1d476653f52c97ca75466b2494e67c1cbd25d h: refs/heads/master i: 280369: fce6bd1682c25eb70707af5ab630d6f1f0f9aff1 280367: e956e1352a4f7b21b3baa1bc4265cd6ce25585bf v: v3 --- [refs] | 2 +- trunk/kernel/freezer.c | 3 ++- trunk/kernel/power/process.c | 16 +--------------- 3 files changed, 4 insertions(+), 17 deletions(-) diff --git a/[refs] b/[refs] index 450a80369e85..9c8b6ba62499 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6907483b4e803a20f0b48cc9afa3817420ce61c5 +refs/heads/master: 85f1d476653f52c97ca75466b2494e67c1cbd25d diff --git a/trunk/kernel/freezer.c b/trunk/kernel/freezer.c index a8822be43da0..a257ecd37c48 100644 --- a/trunk/kernel/freezer.c +++ b/trunk/kernel/freezer.c @@ -109,7 +109,8 @@ bool freeze_task(struct task_struct *p, bool sig_only) spin_lock_irqsave(&freezer_lock, flags); - if (sig_only && !should_send_signal(p)) + if ((p->flags & PF_NOFREEZE) || + (sig_only && !should_send_signal(p))) goto out_unlock; if (frozen(p)) diff --git a/trunk/kernel/power/process.c b/trunk/kernel/power/process.c index e6e2739190b5..e59676f5811d 100644 --- a/trunk/kernel/power/process.c +++ b/trunk/kernel/power/process.c @@ -22,14 +22,6 @@ */ #define TIMEOUT (20 * HZ) -static inline int freezable(struct task_struct * p) -{ - if ((p == current) || - (p->flags & PF_NOFREEZE)) - return 0; - return 1; -} - static int try_to_freeze_tasks(bool sig_only) { struct task_struct *g, *p; @@ -52,10 +44,7 @@ static int try_to_freeze_tasks(bool sig_only) todo = 0; read_lock(&tasklist_lock); do_each_thread(g, p) { - if (frozen(p) || !freezable(p)) - continue; - - if (!freeze_task(p, sig_only)) + if (p == current || !freeze_task(p, sig_only)) continue; /* @@ -181,9 +170,6 @@ void thaw_processes(void) read_lock(&tasklist_lock); do_each_thread(g, p) { - if (!freezable(p)) - continue; - if (cgroup_freezing_or_frozen(p)) continue;