mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
PM / freezer: Clean up code after recent fixes
Clean up the code in process.c after recent changes to get rid of unnecessary labels and goto statements. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
a28e785a9f
commit
71be2114a5
@ -108,25 +108,27 @@ static int try_to_freeze_tasks(bool user_only)
|
||||
return todo ? -EBUSY : 0;
|
||||
}
|
||||
|
||||
static bool __check_frozen_processes(void)
|
||||
{
|
||||
struct task_struct *g, *p;
|
||||
|
||||
for_each_process_thread(g, p)
|
||||
if (p != current && !freezer_should_skip(p) && !frozen(p))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns true if all freezable tasks (except for current) are frozen already
|
||||
*/
|
||||
static bool check_frozen_processes(void)
|
||||
{
|
||||
struct task_struct *g, *p;
|
||||
bool ret = true;
|
||||
bool ret;
|
||||
|
||||
read_lock(&tasklist_lock);
|
||||
for_each_process_thread(g, p) {
|
||||
if (p != current && !freezer_should_skip(p) &&
|
||||
!frozen(p)) {
|
||||
ret = false;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
done:
|
||||
ret = __check_frozen_processes();
|
||||
read_unlock(&tasklist_lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -167,15 +169,14 @@ int freeze_processes(void)
|
||||
* on the way out so we have to double check for race.
|
||||
*/
|
||||
if (oom_kills_count() != oom_kills_saved &&
|
||||
!check_frozen_processes()) {
|
||||
!check_frozen_processes()) {
|
||||
__usermodehelper_set_disable_depth(UMH_ENABLED);
|
||||
printk("OOM in progress.");
|
||||
error = -EBUSY;
|
||||
goto done;
|
||||
} else {
|
||||
printk("done.");
|
||||
}
|
||||
printk("done.");
|
||||
}
|
||||
done:
|
||||
printk("\n");
|
||||
BUG_ON(in_atomic());
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user