Commit 839ec5452ebfd5905b9c69b20ceb640903a8ea1a

Authored by Paul Menage
Committed by Linus Torvalds
1 parent 804b3c28a4

cgroup: fix root_count when mount fails due to busy subsystem

root_count was being incremented in cgroup_get_sb() after all error
checking was complete, but decremented in cgroup_kill_sb(), which can be
called on a superblock that we gave up on due to an error.  This patch
changes cgroup_kill_sb() to only decrement root_count if the root was
previously linked into the list of roots.

Signed-off-by: Paul Menage <menage@google.com>
Tested-by: Serge Hallyn <serue@us.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 4 additions and 2 deletions Side-by-side Diff

... ... @@ -1115,8 +1115,10 @@
1115 1115 }
1116 1116 write_unlock(&css_set_lock);
1117 1117  
1118   - list_del(&root->root_list);
1119   - root_count--;
  1118 + if (!list_empty(&root->root_list)) {
  1119 + list_del(&root->root_list);
  1120 + root_count--;
  1121 + }
1120 1122  
1121 1123 mutex_unlock(&cgroup_mutex);
1122 1124