cgroup: Restructure release_agent_path handling
authorTejun Heo <tj@kernel.org>
Thu, 12 Mar 2020 20:44:35 +0000 (16:44 -0400)
committerTejun Heo <tj@kernel.org>
Thu, 12 Mar 2020 20:44:35 +0000 (16:44 -0400)
commite7b20d97967c2995700041f0348ea33047e5c942
tree00f5a4ddabf212cf94519f9241c4c35cfcd8c5ca
parenta09833f7cdf45b9e85b975646287526fe352d08f
cgroup: Restructure release_agent_path handling

cgrp->root->release_agent_path is protected by both cgroup_mutex and
release_agent_path_lock and readers can hold either one. The
dual-locking scheme was introduced while breaking a locking dependency
issue around cgroup_mutex but doesn't make sense anymore given that
the only remaining reader which uses cgroup_mutex is
cgroup1_releaes_agent().

This patch updates cgroup1_release_agent() to use
release_agent_path_lock so that release_agent_path is always protected
only by release_agent_path_lock.

While at it, convert strlen() based empty string checks to direct
tests on the first character as suggested by Linus.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
kernel/cgroup/cgroup-v1.c