diff options
Diffstat (limited to 'kernel/cgroup/cgroup.c')
| -rw-r--r-- | kernel/cgroup/cgroup.c | 17 | 
1 files changed, 8 insertions, 9 deletions
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 625d7483951c..245cf62ce85a 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -6486,19 +6486,18 @@ err:  static void cgroup_css_set_put_fork(struct kernel_clone_args *kargs)  	__releases(&cgroup_threadgroup_rwsem) __releases(&cgroup_mutex)  { +	struct cgroup *cgrp = kargs->cgrp; +	struct css_set *cset = kargs->cset; +  	cgroup_threadgroup_change_end(current); -	if (kargs->flags & CLONE_INTO_CGROUP) { -		struct cgroup *cgrp = kargs->cgrp; -		struct css_set *cset = kargs->cset; +	if (cset) { +		put_css_set(cset); +		kargs->cset = NULL; +	} +	if (kargs->flags & CLONE_INTO_CGROUP) {  		cgroup_unlock(); - -		if (cset) { -			put_css_set(cset); -			kargs->cset = NULL; -		} -  		if (cgrp) {  			cgroup_put(cgrp);  			kargs->cgrp = NULL;  | 
