summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2012-04-01 21:09:54 +0200
committerTejun Heo <tj@kernel.org>2012-04-01 21:09:54 +0200
commit8b5a5a9dbca914d1f7d70276024d1525a3c94081 (patch)
tree15667c2e0da1331d0253dcc2598bc64983fa539d
parentLinux 3.4-rc1 (diff)
downloadlinux-8b5a5a9dbca914d1f7d70276024d1525a3c94081.tar.xz
linux-8b5a5a9dbca914d1f7d70276024d1525a3c94081.zip
cgroup: deprecate remount option changes
This patch marks the following features for deprecation. * Rebinding subsys by remount: Never reached useful state - only works on empty hierarchies. * release_agent update by remount: release_agent itself will be replaced with conventional fsnotify notification. v2: Lennart pointed out that "name=" is necessary for mounts w/o any controller attached. Drop "name=" deprecation. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Li Zefan <lizf@cn.fujitsu.com> Cc: Lennart Poettering <mzxreary@0pointer.de>
-rw-r--r--Documentation/feature-removal-schedule.txt9
-rw-r--r--kernel/cgroup.c5
2 files changed, 14 insertions, 0 deletions
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index c1be8066ea59..5298e126cea3 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -539,3 +539,12 @@ Why: There appear to be no production users of the get_robust_list syscall,
of ASLR. It was only ever intended for debugging, so it should be
removed.
Who: Kees Cook <keescook@chromium.org>
+
+----------------------------
+
+What: cgroup option updates via remount
+When: March 2013
+Why: Remount currently allows changing bound subsystems and
+ release_agent. Rebinding is hardly useful as it only works
+ when the hierarchy is empty and release_agent itself should be
+ replaced with conventional fsnotify.
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index ed64ccac67c9..741c120e06c1 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1294,6 +1294,11 @@ static int cgroup_remount(struct super_block *sb, int *flags, char *data)
if (ret)
goto out_unlock;
+ /* See feature-removal-schedule.txt */
+ if (opts.subsys_bits != root->actual_subsys_bits || opts.release_agent)
+ pr_warning("cgroup: option changes via remount are deprecated (pid=%d comm=%s)\n",
+ task_tgid_nr(current), current->comm);
+
/* Don't allow flags or name to change at remount */
if (opts.flags != root->flags ||
(opts.name && strcmp(opts.name, root->name))) {