diff options
author | Tejun Heo <tj@kernel.org> | 2012-04-01 15:09:54 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2012-04-01 15:09:54 -0400 |
commit | 8b5a5a9dbca914d1f7d70276024d1525a3c94081 (patch) | |
tree | 15667c2e0da1331d0253dcc2598bc64983fa539d | |
parent | dd775ae2549217d3ae09363e3edb305d0fa19928 (diff) |
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.txt | 9 | ||||
-rw-r--r-- | kernel/cgroup.c | 5 |
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, | |||
539 | of ASLR. It was only ever intended for debugging, so it should be | 539 | of ASLR. It was only ever intended for debugging, so it should be |
540 | removed. | 540 | removed. |
541 | Who: Kees Cook <keescook@chromium.org> | 541 | Who: Kees Cook <keescook@chromium.org> |
542 | |||
543 | ---------------------------- | ||
544 | |||
545 | What: cgroup option updates via remount | ||
546 | When: March 2013 | ||
547 | Why: Remount currently allows changing bound subsystems and | ||
548 | release_agent. Rebinding is hardly useful as it only works | ||
549 | when the hierarchy is empty and release_agent itself should be | ||
550 | 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) | |||
1294 | if (ret) | 1294 | if (ret) |
1295 | goto out_unlock; | 1295 | goto out_unlock; |
1296 | 1296 | ||
1297 | /* See feature-removal-schedule.txt */ | ||
1298 | if (opts.subsys_bits != root->actual_subsys_bits || opts.release_agent) | ||
1299 | pr_warning("cgroup: option changes via remount are deprecated (pid=%d comm=%s)\n", | ||
1300 | task_tgid_nr(current), current->comm); | ||
1301 | |||
1297 | /* Don't allow flags or name to change at remount */ | 1302 | /* Don't allow flags or name to change at remount */ |
1298 | if (opts.flags != root->flags || | 1303 | if (opts.flags != root->flags || |
1299 | (opts.name && strcmp(opts.name, root->name))) { | 1304 | (opts.name && strcmp(opts.name, root->name))) { |