cgroup: implement CFTYPE_NO_PREFIX
When cgroup files are created, cgroup core automatically prepends the name of the subsystem as prefix. This patch adds CFTYPE_NO_ which disables the automatic prefix. This is to work around historical baggages and shouldn't be used for new files. This will be used to move "cgroup.event_control" from cgroup core to memcg. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Li Zefan <lizefan@huawei.com> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Glauber Costa <glommer@gmail.com>
This commit is contained in:
parent
ca8bdcaff0
commit
9fa4db334c
|
@ -411,6 +411,7 @@ enum {
|
||||||
CFTYPE_ONLY_ON_ROOT = (1 << 0), /* only create on root cgrp */
|
CFTYPE_ONLY_ON_ROOT = (1 << 0), /* only create on root cgrp */
|
||||||
CFTYPE_NOT_ON_ROOT = (1 << 1), /* don't 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_INSANE = (1 << 2), /* don't create if sane_behavior */
|
||||||
|
CFTYPE_NO_PREFIX = (1 << 3), /* (DON'T USE FOR NEW FILES) no subsys prefix */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MAX_CFTYPE_NAME 64
|
#define MAX_CFTYPE_NAME 64
|
||||||
|
|
|
@ -2756,7 +2756,8 @@ static int cgroup_add_file(struct cgroup *cgrp, struct cftype *cft)
|
||||||
umode_t mode;
|
umode_t mode;
|
||||||
char name[MAX_CGROUP_TYPE_NAMELEN + MAX_CFTYPE_NAME + 2] = { 0 };
|
char name[MAX_CGROUP_TYPE_NAMELEN + MAX_CFTYPE_NAME + 2] = { 0 };
|
||||||
|
|
||||||
if (cft->ss && !(cgrp->root->flags & CGRP_ROOT_NOPREFIX)) {
|
if (cft->ss && !(cft->flags & CFTYPE_NO_PREFIX) &&
|
||||||
|
!(cgrp->root->flags & CGRP_ROOT_NOPREFIX)) {
|
||||||
strcpy(name, cft->ss->name);
|
strcpy(name, cft->ss->name);
|
||||||
strcat(name, ".");
|
strcat(name, ".");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue