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>
This commit is contained in:
parent
dd775ae254
commit
8b5a5a9dbc
2 changed files with 14 additions and 0 deletions
|
@ -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
|
of ASLR. It was only ever intended for debugging, so it should be
|
||||||
removed.
|
removed.
|
||||||
Who: Kees Cook <keescook@chromium.org>
|
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.
|
||||||
|
|
|
@ -1294,6 +1294,11 @@ static int cgroup_remount(struct super_block *sb, int *flags, char *data)
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out_unlock;
|
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 */
|
/* Don't allow flags or name to change at remount */
|
||||||
if (opts.flags != root->flags ||
|
if (opts.flags != root->flags ||
|
||||||
(opts.name && strcmp(opts.name, root->name))) {
|
(opts.name && strcmp(opts.name, root->name))) {
|
||||||
|
|
Loading…
Reference in a new issue