cgroup: make CFTYPE_ONLY_ON_DFL and CFTYPE_NO_ internal to cgroup core
authorTejun Heo <tj@kernel.org>
Tue, 15 Jul 2014 15:05:10 +0000 (11:05 -0400)
committerTejun Heo <tj@kernel.org>
Tue, 15 Jul 2014 15:05:10 +0000 (11:05 -0400)
cgroup now distinguishes cftypes for the default and legacy
hierarchies more explicitly by using separate arrays and
CFTYPE_ONLY_ON_DFL and CFTYPE_INSANE should be and are used only
inside cgroup core proper.  Let's make it clear that the flags are
internal by prefixing them with double underscores.

CFTYPE_INSANE is renamed to __CFTYPE_NOT_ON_DFL for consistency.  The
two flags are also collected and assigned bits >= 16 so that they
aren't mixed with the published flags.

v2: Convert the extra ones in cgroup_exit_cftypes() which are added by
    revision to the previous patch.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Li Zefan <lizefan@huawei.com>
include/linux/cgroup.h
kernel/cgroup.c

index 9f76236ac1580c857a2c44161db24291fd09bd1a..b5223c570eba54e4dafb4e31b1e7d89c0a65b9f8 100644 (file)
@@ -384,9 +384,11 @@ struct css_set {
 enum {
        CFTYPE_ONLY_ON_ROOT     = (1 << 0),     /* only create on root cgrp */
        CFTYPE_NOT_ON_ROOT      = (1 << 1),     /* don't create on root cgrp */
-       CFTYPE_INSANE           = (1 << 2),     /* don't create if sane_behavior */
        CFTYPE_NO_PREFIX        = (1 << 3),     /* (DON'T USE FOR NEW FILES) no subsys prefix */
-       CFTYPE_ONLY_ON_DFL      = (1 << 4),     /* only on default hierarchy */
+
+       /* internal flags, do not use outside cgroup core proper */
+       __CFTYPE_ONLY_ON_DFL    = (1 << 16),    /* only on default hierarchy */
+       __CFTYPE_NOT_ON_DFL     = (1 << 17),    /* not on default hierarchy */
 };
 
 #define MAX_CFTYPE_NAME                64
index 374ebdf74f3505babcc8b3a58710fab70d1a6694..f41d164a3d54492661eedd41d5a2f253fc1bebf0 100644 (file)
@@ -3031,9 +3031,9 @@ static int cgroup_addrm_files(struct cgroup *cgrp, struct cftype cfts[],
 
        for (cft = cfts; cft->name[0] != '\0'; cft++) {
                /* does cft->flags tell us to skip this file on @cgrp? */
-               if ((cft->flags & CFTYPE_ONLY_ON_DFL) && !cgroup_on_dfl(cgrp))
+               if ((cft->flags & __CFTYPE_ONLY_ON_DFL) && !cgroup_on_dfl(cgrp))
                        continue;
-               if ((cft->flags & CFTYPE_INSANE) && cgroup_on_dfl(cgrp))
+               if ((cft->flags & __CFTYPE_NOT_ON_DFL) && cgroup_on_dfl(cgrp))
                        continue;
                if ((cft->flags & CFTYPE_NOT_ON_ROOT) && !cgroup_parent(cgrp))
                        continue;
@@ -3093,7 +3093,7 @@ static void cgroup_exit_cftypes(struct cftype *cfts)
                cft->ss = NULL;
 
                /* revert flags set by cgroup core while adding @cfts */
-               cft->flags &= ~(CFTYPE_ONLY_ON_DFL | CFTYPE_INSANE);
+               cft->flags &= ~(__CFTYPE_ONLY_ON_DFL | __CFTYPE_NOT_ON_DFL);
        }
 }
 
@@ -3217,7 +3217,7 @@ int cgroup_add_dfl_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
        struct cftype *cft;
 
        for (cft = cfts; cft && cft->name[0] != '\0'; cft++)
-               cft->flags |= CFTYPE_ONLY_ON_DFL;
+               cft->flags |= __CFTYPE_ONLY_ON_DFL;
        return cgroup_add_cftypes(ss, cfts);
 }
 
@@ -3234,7 +3234,7 @@ int cgroup_add_legacy_cftypes(struct cgroup_subsys *ss, struct cftype *cfts)
        struct cftype *cft;
 
        for (cft = cfts; cft && cft->name[0] != '\0'; cft++)
-               cft->flags |= CFTYPE_INSANE;
+               cft->flags |= __CFTYPE_NOT_ON_DFL;
        return cgroup_add_cftypes(ss, cfts);
 }