Now we have 'stat' file in both memory and cpuacct subsystems. If we mount these 2 subsystems with option 'noprefix', the creation of 'stat' file for cpuacct will fail, but without any notificatin to the user. With this patch, we fail the mount/remount in this case. Signed-off-by: Li Zefan <lizf@xxxxxxxxxxxxxx> --- kernel/cgroup.c | 18 ++++++++++++++++-- 1 files changed, 16 insertions(+), 2 deletions(-) diff --git a/kernel/cgroup.c b/kernel/cgroup.c index a7267bf..eab83f7 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -896,6 +896,7 @@ static int parse_cgroupfs_options(char *data, static int cgroup_remount(struct super_block *sb, int *flags, char *data) { int ret = 0; + unsigned long subsys_bits; struct cgroupfs_root *root = sb->s_fs_info; struct cgroup *cgrp = &root->top_cgroup; struct cgroup_sb_opts opts; @@ -914,12 +915,17 @@ static int cgroup_remount(struct super_block *sb, int *flags, char *data) goto out_unlock; } + subsys_bits = root->subsys_bits; ret = rebind_subsystems(root, opts.subsys_bits); if (ret) goto out_unlock; /* (re)populate subsystem files */ - cgroup_populate_dir(cgrp); + ret = cgroup_populate_dir(cgrp); + if (ret) { + rebind_subsystems(root, subsys_bits); + goto out_unlock; + } if (opts.release_agent) strcpy(root->release_agent_path, opts.release_agent); @@ -1122,9 +1128,13 @@ static int cgroup_get_sb(struct file_system_type *fs_type, BUG_ON(!list_empty(&root_cgrp->children)); BUG_ON(root->number_of_cgroups != 1); - cgroup_populate_dir(root_cgrp); + ret = cgroup_populate_dir(root_cgrp); + mutex_unlock(&inode->i_mutex); mutex_unlock(&cgroup_mutex); + + if (ret) + goto drop_new_super; } simple_set_mnt(mnt, sb); @@ -1803,6 +1813,10 @@ int cgroup_add_file(struct cgroup *cgrp, dput(dentry); } else error = PTR_ERR(dentry); + + if (error) + printk(KERN_WARNING "cgroup: Failed to create file '%s': %d\n", + name, error); return error; } -- 1.5.4.rc3 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers