cgroup: simplify double-check locking in cgroup_attach_proc
authorMandeep Singh Baines <msb@chromium.org>
Wed, 4 Jan 2012 05:18:30 +0000 (21:18 -0800)
committerTejun Heo <tj@kernel.org>
Fri, 20 Jan 2012 23:58:13 +0000 (15:58 -0800)
commitb78949ebfb563c29808a9d0a772e3adb5561bc80
treed5b473db418a7480d314ffe36d428290d3603bfc
parent245282557c49754af3dbcc732316e814340d6bce
cgroup: simplify double-check locking in cgroup_attach_proc

To keep the complexity of the double-check locking in one place, move
the thread_group_leader check up into attach_task_by_pid().  This
allows us to use a goto instead of returning -EAGAIN.

While at it, convert a couple of returns to gotos and use rcu for the
!pid case also in order to simplify the logic.

Changes in V2:
* https://lkml.org/lkml/2011/12/22/86 (Tejun Heo)
  * Use a goto instead of returning -EAGAIN

Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Acked-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: containers@lists.linux-foundation.org
Cc: cgroups@vger.kernel.org
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Paul Menage <paul@paulmenage.org>
kernel/cgroup.c