diff options
Diffstat (limited to 'kernel/cgroup.c')
| -rw-r--r-- | kernel/cgroup.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 5a54ff42874e..9edb5c4b79b4 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c | |||
| @@ -1122,8 +1122,8 @@ static void cgroup_kill_sb(struct super_block *sb) { | |||
| 1122 | 1122 | ||
| 1123 | mutex_unlock(&cgroup_mutex); | 1123 | mutex_unlock(&cgroup_mutex); |
| 1124 | 1124 | ||
| 1125 | kfree(root); | ||
| 1126 | kill_litter_super(sb); | 1125 | kill_litter_super(sb); |
| 1126 | kfree(root); | ||
| 1127 | } | 1127 | } |
| 1128 | 1128 | ||
| 1129 | static struct file_system_type cgroup_fs_type = { | 1129 | static struct file_system_type cgroup_fs_type = { |
| @@ -2351,7 +2351,7 @@ static void cgroup_lock_hierarchy(struct cgroupfs_root *root) | |||
| 2351 | for (i = 0; i < CGROUP_SUBSYS_COUNT; i++) { | 2351 | for (i = 0; i < CGROUP_SUBSYS_COUNT; i++) { |
| 2352 | struct cgroup_subsys *ss = subsys[i]; | 2352 | struct cgroup_subsys *ss = subsys[i]; |
| 2353 | if (ss->root == root) | 2353 | if (ss->root == root) |
| 2354 | mutex_lock_nested(&ss->hierarchy_mutex, i); | 2354 | mutex_lock(&ss->hierarchy_mutex); |
| 2355 | } | 2355 | } |
| 2356 | } | 2356 | } |
| 2357 | 2357 | ||
| @@ -2637,6 +2637,7 @@ static void __init cgroup_init_subsys(struct cgroup_subsys *ss) | |||
| 2637 | BUG_ON(!list_empty(&init_task.tasks)); | 2637 | BUG_ON(!list_empty(&init_task.tasks)); |
| 2638 | 2638 | ||
| 2639 | mutex_init(&ss->hierarchy_mutex); | 2639 | mutex_init(&ss->hierarchy_mutex); |
| 2640 | lockdep_set_class(&ss->hierarchy_mutex, &ss->subsys_key); | ||
| 2640 | ss->active = 1; | 2641 | ss->active = 1; |
| 2641 | } | 2642 | } |
| 2642 | 2643 | ||
