diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/cgroup.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 7bf3ce09c50c..678a22c75fdb 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c | |||
@@ -1091,12 +1091,16 @@ static int rebind_subsystems(struct cgroupfs_root *root, | |||
1091 | cgrp->subsys[i]->cgroup = cgrp; | 1091 | cgrp->subsys[i]->cgroup = cgrp; |
1092 | list_move(&ss->sibling, &root->subsys_list); | 1092 | list_move(&ss->sibling, &root->subsys_list); |
1093 | ss->root = root; | 1093 | ss->root = root; |
1094 | if (ss->bind) | ||
1095 | ss->bind(cgrp); | ||
1094 | /* refcount was already taken, and we're keeping it */ | 1096 | /* refcount was already taken, and we're keeping it */ |
1095 | } else if (bit & removed_mask) { | 1097 | } else if (bit & removed_mask) { |
1096 | /* We're removing this subsystem */ | 1098 | /* We're removing this subsystem */ |
1097 | BUG_ON(ss == NULL); | 1099 | BUG_ON(ss == NULL); |
1098 | BUG_ON(cgrp->subsys[i] != dummytop->subsys[i]); | 1100 | BUG_ON(cgrp->subsys[i] != dummytop->subsys[i]); |
1099 | BUG_ON(cgrp->subsys[i]->cgroup != cgrp); | 1101 | BUG_ON(cgrp->subsys[i]->cgroup != cgrp); |
1102 | if (ss->bind) | ||
1103 | ss->bind(dummytop); | ||
1100 | dummytop->subsys[i]->cgroup = dummytop; | 1104 | dummytop->subsys[i]->cgroup = dummytop; |
1101 | cgrp->subsys[i] = NULL; | 1105 | cgrp->subsys[i] = NULL; |
1102 | subsys[i]->root = &rootnode; | 1106 | subsys[i]->root = &rootnode; |