Re: [PATCH] cgroup: fix unbalanced locking

2014-09-18 Thread Tejun Heo
On Thu, Sep 18, 2014 at 05:28:46PM +0800, Zefan Li wrote: > cgroup_pidlist_start() holds cgrp->pidlist_mutex and then calls > pidlist_array_load(), and cgroup_pidlist_stop() releases the mutex. > > It is wrong that we release the mutex in the failure path in > pidlist_array_load(), because

Re: [PATCH] cgroup: fix unbalanced locking

2014-09-18 Thread Cong Wang
On Thu, Sep 18, 2014 at 2:28 AM, Zefan Li wrote: > cgroup_pidlist_start() holds cgrp->pidlist_mutex and then calls > pidlist_array_load(), and cgroup_pidlist_stop() releases the mutex. > > It is wrong that we release the mutex in the failure path in > pidlist_array_load(), because

[PATCH] cgroup: fix unbalanced locking

2014-09-18 Thread Zefan Li
cgroup_pidlist_start() holds cgrp->pidlist_mutex and then calls pidlist_array_load(), and cgroup_pidlist_stop() releases the mutex. It is wrong that we release the mutex in the failure path in pidlist_array_load(), because cgroup_pidlist_stop() will be called no matter if cgroup_pidlist_start()

[PATCH] cgroup: fix unbalanced locking

2014-09-18 Thread Zefan Li
cgroup_pidlist_start() holds cgrp-pidlist_mutex and then calls pidlist_array_load(), and cgroup_pidlist_stop() releases the mutex. It is wrong that we release the mutex in the failure path in pidlist_array_load(), because cgroup_pidlist_stop() will be called no matter if cgroup_pidlist_start()

Re: [PATCH] cgroup: fix unbalanced locking

2014-09-18 Thread Cong Wang
On Thu, Sep 18, 2014 at 2:28 AM, Zefan Li lize...@huawei.com wrote: cgroup_pidlist_start() holds cgrp-pidlist_mutex and then calls pidlist_array_load(), and cgroup_pidlist_stop() releases the mutex. It is wrong that we release the mutex in the failure path in pidlist_array_load(), because

Re: [PATCH] cgroup: fix unbalanced locking

2014-09-18 Thread Tejun Heo
On Thu, Sep 18, 2014 at 05:28:46PM +0800, Zefan Li wrote: cgroup_pidlist_start() holds cgrp-pidlist_mutex and then calls pidlist_array_load(), and cgroup_pidlist_stop() releases the mutex. It is wrong that we release the mutex in the failure path in pidlist_array_load(), because