Skip to content

Commit

Permalink
cgroup: hold cgroup_mutex before calling css_offline()
Browse files Browse the repository at this point in the history
cpuset no longer nests cgroup_mutex inside cpu_hotplug lock, so
we don't have to release cgroup_mutex before calling css_offline().

Signed-off-by: Li Zefan <[email protected]>
Signed-off-by: Tejun Heo <[email protected]>
  • Loading branch information
lizf-os authored and htejun committed Mar 12, 2013
1 parent 6dc0118 commit d7eeac1
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 10 deletions.
1 change: 1 addition & 0 deletions Documentation/cgroups/cgroups.txt
Original file line number Diff line number Diff line change
Expand Up @@ -580,6 +580,7 @@ propagation along the hierarchy. See the comment on
cgroup_for_each_descendant_pre() for details.

void css_offline(struct cgroup *cgrp);
(cgroup_mutex held by caller)

This is the counterpart of css_online() and called iff css_online()
has succeeded on @cgrp. This signifies the beginning of the end of
Expand Down
11 changes: 1 addition & 10 deletions kernel/cgroup.c
Original file line number Diff line number Diff line change
Expand Up @@ -4169,17 +4169,8 @@ static void offline_css(struct cgroup_subsys *ss, struct cgroup *cgrp)
if (!(css->flags & CSS_ONLINE))
return;

/*
* css_offline() should be called with cgroup_mutex unlocked. See
* 3fa59dfbc3 ("cgroup: fix potential deadlock in pre_destroy") for
* details. This temporary unlocking should go away once
* cgroup_mutex is unexported from controllers.
*/
if (ss->css_offline) {
mutex_unlock(&cgroup_mutex);
if (ss->css_offline)
ss->css_offline(cgrp);
mutex_lock(&cgroup_mutex);
}

cgrp->subsys[ss->subsys_id]->flags &= ~CSS_ONLINE;
}
Expand Down

0 comments on commit d7eeac1

Please sign in to comment.