cgroup: CGRP_ROOT_SUBSYS_BOUND should also be ignored when mounting an existing hierarchy
authorTejun Heo <tj@kernel.org>
Sat, 29 Jun 2013 21:06:10 +0000 (14:06 -0700)
committerTejun Heo <tj@kernel.org>
Sat, 29 Jun 2013 21:06:10 +0000 (14:06 -0700)
0ce6cba357 ("cgroup: CGRP_ROOT_SUBSYS_BOUND should be ignored when
comparing mount options") only updated the remount path but
CGRP_ROOT_SUBSYS_BOUND should also be ignored when comparing options
while mounting an existing hierarchy.  As option mismatch triggers a
warning but doesn't fail the mount without sane_behavior, this only
triggers a spurious warning message.

Fix it by only comparing CGRP_ROOT_OPTION_MASK bits when comparing new
and existing root options.

Signed-off-by: Tejun Heo <tj@kernel.org>
kernel/cgroup.c

index 5a2fcf5bcc4ae9b7cffe93782e9104e6c2508f59..e5583d10a325657620add60075ae0c9eead92617 100644 (file)
@@ -1703,7 +1703,7 @@ static struct dentry *cgroup_mount(struct file_system_type *fs_type,
                 */
                cgroup_free_root(opts.new_root);
 
-               if (root->flags != opts.flags) {
+               if ((root->flags ^ opts.flags) & CGRP_ROOT_OPTION_MASK) {
                        if ((root->flags | opts.flags) & CGRP_ROOT_SANE_BEHAVIOR) {
                                pr_err("cgroup: sane_behavior: new mount options should match the existing superblock\n");
                                ret = -EINVAL;