]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
cgroup_rm_file: don't delete the uncreated files
authorGao feng <gaofeng@cn.fujitsu.com>
Thu, 6 Dec 2012 06:38:57 +0000 (14:38 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Jan 2013 17:18:49 +0000 (09:18 -0800)
commit f33fddc2b9573d8359f1007d4bbe5cd587a0c093 upstream.

in cgroup_add_file,when creating files for cgroup,
some of creation may be skipped. So we need to avoid
deleting these uncreated files in cgroup_rm_file,
otherwise the warning msg will be triggered.

"cgroup_addrm_files: failed to remove memory_pressure_enabled, err=-2"

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Acked-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Tejun Heo <tj@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/cgroup.c

index e2101fd0ad6754bfc5e487f65db58149302dd0c7..ad99830f93e343c7f49899607ea5d1e7e28b4256 100644 (file)
@@ -2789,12 +2789,6 @@ static int cgroup_add_file(struct cgroup *cgrp, struct cgroup_subsys *subsys,
 
        simple_xattrs_init(&cft->xattrs);
 
-       /* does @cft->flags tell us to skip creation on @cgrp? */
-       if ((cft->flags & CFTYPE_NOT_ON_ROOT) && !cgrp->parent)
-               return 0;
-       if ((cft->flags & CFTYPE_ONLY_ON_ROOT) && cgrp->parent)
-               return 0;
-
        if (subsys && !test_bit(ROOT_NOPREFIX, &cgrp->root->flags)) {
                strcpy(name, subsys->name);
                strcat(name, ".");
@@ -2835,6 +2829,12 @@ static int cgroup_addrm_files(struct cgroup *cgrp, struct cgroup_subsys *subsys,
        int err, ret = 0;
 
        for (cft = cfts; cft->name[0] != '\0'; cft++) {
+               /* does cft->flags tell us to skip this file on @cgrp? */
+               if ((cft->flags & CFTYPE_NOT_ON_ROOT) && !cgrp->parent)
+                       continue;
+               if ((cft->flags & CFTYPE_ONLY_ON_ROOT) && cgrp->parent)
+                       continue;
+
                if (is_add)
                        err = cgroup_add_file(cgrp, subsys, cft);
                else