diff options
Diffstat (limited to 'kernel/cgroup/cgroup.c')
-rw-r--r-- | kernel/cgroup/cgroup.c | 33 |
1 files changed, 4 insertions, 29 deletions
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 155048b0eca2..426a0026225c 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c | |||
@@ -1460,8 +1460,8 @@ struct cgroup *task_cgroup_from_root(struct task_struct *task, | |||
1460 | 1460 | ||
1461 | static struct kernfs_syscall_ops cgroup_kf_syscall_ops; | 1461 | static struct kernfs_syscall_ops cgroup_kf_syscall_ops; |
1462 | 1462 | ||
1463 | static char *cgroup_fill_name(struct cgroup *cgrp, const struct cftype *cft, | 1463 | static char *cgroup_file_name(struct cgroup *cgrp, const struct cftype *cft, |
1464 | char *buf, bool write_link_name) | 1464 | char *buf) |
1465 | { | 1465 | { |
1466 | struct cgroup_subsys *ss = cft->ss; | 1466 | struct cgroup_subsys *ss = cft->ss; |
1467 | 1467 | ||
@@ -1471,26 +1471,13 @@ static char *cgroup_fill_name(struct cgroup *cgrp, const struct cftype *cft, | |||
1471 | 1471 | ||
1472 | snprintf(buf, CGROUP_FILE_NAME_MAX, "%s%s.%s", | 1472 | snprintf(buf, CGROUP_FILE_NAME_MAX, "%s%s.%s", |
1473 | dbg, cgroup_on_dfl(cgrp) ? ss->name : ss->legacy_name, | 1473 | dbg, cgroup_on_dfl(cgrp) ? ss->name : ss->legacy_name, |
1474 | write_link_name ? cft->link_name : cft->name); | 1474 | cft->name); |
1475 | } else { | 1475 | } else { |
1476 | strscpy(buf, write_link_name ? cft->link_name : cft->name, | 1476 | strscpy(buf, cft->name, CGROUP_FILE_NAME_MAX); |
1477 | CGROUP_FILE_NAME_MAX); | ||
1478 | } | 1477 | } |
1479 | return buf; | 1478 | return buf; |
1480 | } | 1479 | } |
1481 | 1480 | ||
1482 | static char *cgroup_file_name(struct cgroup *cgrp, const struct cftype *cft, | ||
1483 | char *buf) | ||
1484 | { | ||
1485 | return cgroup_fill_name(cgrp, cft, buf, false); | ||
1486 | } | ||
1487 | |||
1488 | static char *cgroup_link_name(struct cgroup *cgrp, const struct cftype *cft, | ||
1489 | char *buf) | ||
1490 | { | ||
1491 | return cgroup_fill_name(cgrp, cft, buf, true); | ||
1492 | } | ||
1493 | |||
1494 | /** | 1481 | /** |
1495 | * cgroup_file_mode - deduce file mode of a control file | 1482 | * cgroup_file_mode - deduce file mode of a control file |
1496 | * @cft: the control file in question | 1483 | * @cft: the control file in question |
@@ -1649,9 +1636,6 @@ static void cgroup_rm_file(struct cgroup *cgrp, const struct cftype *cft) | |||
1649 | } | 1636 | } |
1650 | 1637 | ||
1651 | kernfs_remove_by_name(cgrp->kn, cgroup_file_name(cgrp, cft, name)); | 1638 | kernfs_remove_by_name(cgrp->kn, cgroup_file_name(cgrp, cft, name)); |
1652 | if (cft->flags & CFTYPE_SYMLINKED) | ||
1653 | kernfs_remove_by_name(cgrp->kn, | ||
1654 | cgroup_link_name(cgrp, cft, name)); | ||
1655 | } | 1639 | } |
1656 | 1640 | ||
1657 | /** | 1641 | /** |
@@ -3837,7 +3821,6 @@ static int cgroup_add_file(struct cgroup_subsys_state *css, struct cgroup *cgrp, | |||
3837 | { | 3821 | { |
3838 | char name[CGROUP_FILE_NAME_MAX]; | 3822 | char name[CGROUP_FILE_NAME_MAX]; |
3839 | struct kernfs_node *kn; | 3823 | struct kernfs_node *kn; |
3840 | struct kernfs_node *kn_link; | ||
3841 | struct lock_class_key *key = NULL; | 3824 | struct lock_class_key *key = NULL; |
3842 | int ret; | 3825 | int ret; |
3843 | 3826 | ||
@@ -3868,14 +3851,6 @@ static int cgroup_add_file(struct cgroup_subsys_state *css, struct cgroup *cgrp, | |||
3868 | spin_unlock_irq(&cgroup_file_kn_lock); | 3851 | spin_unlock_irq(&cgroup_file_kn_lock); |
3869 | } | 3852 | } |
3870 | 3853 | ||
3871 | if (cft->flags & CFTYPE_SYMLINKED) { | ||
3872 | kn_link = kernfs_create_link(cgrp->kn, | ||
3873 | cgroup_link_name(cgrp, cft, name), | ||
3874 | kn); | ||
3875 | if (IS_ERR(kn_link)) | ||
3876 | return PTR_ERR(kn_link); | ||
3877 | } | ||
3878 | |||
3879 | return 0; | 3854 | return 0; |
3880 | } | 3855 | } |
3881 | 3856 | ||