diff options
author | Li Zefan <lizf@cn.fujitsu.com> | 2008-10-29 22:00:52 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-30 19:38:45 +0100 |
commit | 80a6a2cf3bebcf20285cf05373b9c5ec96816577 (patch) | |
tree | b934c6b9c55e7f0979312bdec9f679680d73aac1 /kernel/cgroup_freezer.c | |
parent | freezer_cg: fix improper BUG_ON() causing oops (diff) | |
download | linux-80a6a2cf3bebcf20285cf05373b9c5ec96816577.tar.xz linux-80a6a2cf3bebcf20285cf05373b9c5ec96816577.zip |
freezer_cg: remove redundant check in freezer_can_attach()
It is sufficient to check if @task is frozen, and no need to check if the
original freezer is frozen.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Cedric Le Goater <clg@fr.ibm.com>
Acked-by: Matt Helsley <matthltc@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to '')
-rw-r--r-- | kernel/cgroup_freezer.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/kernel/cgroup_freezer.c b/kernel/cgroup_freezer.c index 7f54d1c42953..e9c856a265c9 100644 --- a/kernel/cgroup_freezer.c +++ b/kernel/cgroup_freezer.c @@ -162,9 +162,13 @@ static int freezer_can_attach(struct cgroup_subsys *ss, struct task_struct *task) { struct freezer *freezer; - int retval; - /* Anything frozen can't move or be moved to/from */ + /* + * Anything frozen can't move or be moved to/from. + * + * Since orig_freezer->state == FROZEN means that @task has been + * frozen, so it's sufficient to check the latter condition. + */ if (is_task_frozen_enough(task)) return -EBUSY; @@ -173,13 +177,7 @@ static int freezer_can_attach(struct cgroup_subsys *ss, if (freezer->state == CGROUP_FROZEN) return -EBUSY; - retval = 0; - task_lock(task); - freezer = task_freezer(task); - if (freezer->state == CGROUP_FROZEN) - retval = -EBUSY; - task_unlock(task); - return retval; + return 0; } static void freezer_fork(struct cgroup_subsys *ss, struct task_struct *task) |