| From b7f71899fbdba1cac6773a62ed4ea841b7eda6b0 Mon Sep 17 00:00:00 2001 |
| From: Jens Axboe <axboe@kernel.dk> |
| Date: Mon, 10 Jun 2019 03:35:41 -0600 |
| Subject: [PATCH] cgroup/bfq: revert bfq.weight symlink change |
| |
| There's some discussion on how to do this the best, and Tejun prefers |
| that BFQ just create the file itself instead of having cgroups support |
| a symlink feature. |
| |
| Hence revert commit 54b7b868e826 and 19e9da9e86c4 for 5.2, and this |
| can be done properly for 5.3. |
| |
| Signed-off-by: Jens Axboe <axboe@kernel.dk> |
| (cherry picked from commit cf8929885de318c0bf73438c9e5dde59d6536f7c) |
| Signed-off-by: Li Yang <leoyang.li@nxp.com> |
| --- |
| include/linux/cgroup-defs.h | 3 --- |
| kernel/cgroup/cgroup.c | 33 ++++----------------------------- |
| 2 files changed, 4 insertions(+), 32 deletions(-) |
| |
| --- a/include/linux/cgroup-defs.h |
| +++ b/include/linux/cgroup-defs.h |
| @@ -106,8 +106,6 @@ enum { |
| CFTYPE_WORLD_WRITABLE = (1 << 4), /* (DON'T USE FOR NEW FILES) S_IWUGO */ |
| CFTYPE_DEBUG = (1 << 5), /* create when cgroup_debug */ |
| |
| - CFTYPE_SYMLINKED = (1 << 6), /* pointed to by symlink too */ |
| - |
| /* 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 */ |
| @@ -547,7 +545,6 @@ struct cftype { |
| * end of cftype array. |
| */ |
| char name[MAX_CFTYPE_NAME]; |
| - char link_name[MAX_CFTYPE_NAME]; |
| unsigned long private; |
| |
| /* |
| --- a/kernel/cgroup/cgroup.c |
| +++ b/kernel/cgroup/cgroup.c |
| @@ -1468,8 +1468,8 @@ struct cgroup *task_cgroup_from_root(str |
| |
| static struct kernfs_syscall_ops cgroup_kf_syscall_ops; |
| |
| -static char *cgroup_fill_name(struct cgroup *cgrp, const struct cftype *cft, |
| - char *buf, bool write_link_name) |
| +static char *cgroup_file_name(struct cgroup *cgrp, const struct cftype *cft, |
| + char *buf) |
| { |
| struct cgroup_subsys *ss = cft->ss; |
| |
| @@ -1479,26 +1479,13 @@ static char *cgroup_fill_name(struct cgr |
| |
| snprintf(buf, CGROUP_FILE_NAME_MAX, "%s%s.%s", |
| dbg, cgroup_on_dfl(cgrp) ? ss->name : ss->legacy_name, |
| - write_link_name ? cft->link_name : cft->name); |
| + cft->name); |
| } else { |
| - strscpy(buf, write_link_name ? cft->link_name : cft->name, |
| - CGROUP_FILE_NAME_MAX); |
| + strscpy(buf, cft->name, CGROUP_FILE_NAME_MAX); |
| } |
| return buf; |
| } |
| |
| -static char *cgroup_file_name(struct cgroup *cgrp, const struct cftype *cft, |
| - char *buf) |
| -{ |
| - return cgroup_fill_name(cgrp, cft, buf, false); |
| -} |
| - |
| -static char *cgroup_link_name(struct cgroup *cgrp, const struct cftype *cft, |
| - char *buf) |
| -{ |
| - return cgroup_fill_name(cgrp, cft, buf, true); |
| -} |
| - |
| /** |
| * cgroup_file_mode - deduce file mode of a control file |
| * @cft: the control file in question |
| @@ -1657,9 +1644,6 @@ static void cgroup_rm_file(struct cgroup |
| } |
| |
| kernfs_remove_by_name(cgrp->kn, cgroup_file_name(cgrp, cft, name)); |
| - if (cft->flags & CFTYPE_SYMLINKED) |
| - kernfs_remove_by_name(cgrp->kn, |
| - cgroup_link_name(cgrp, cft, name)); |
| } |
| |
| /** |
| @@ -4010,7 +3994,6 @@ static int cgroup_add_file(struct cgroup |
| { |
| char name[CGROUP_FILE_NAME_MAX]; |
| struct kernfs_node *kn; |
| - struct kernfs_node *kn_link; |
| struct lock_class_key *key = NULL; |
| int ret; |
| |
| @@ -4041,14 +4024,6 @@ static int cgroup_add_file(struct cgroup |
| spin_unlock_irq(&cgroup_file_kn_lock); |
| } |
| |
| - if (cft->flags & CFTYPE_SYMLINKED) { |
| - kn_link = kernfs_create_link(cgrp->kn, |
| - cgroup_link_name(cgrp, cft, name), |
| - kn); |
| - if (IS_ERR(kn_link)) |
| - return PTR_ERR(kn_link); |
| - } |
| - |
| return 0; |
| } |
| |