diff options
author | Tejun Heo <tj@kernel.org> | 2013-08-08 20:11:24 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-08-08 20:11:24 -0400 |
commit | 182446d087906de40e514573a92a97b203695f71 (patch) | |
tree | 6aee96219c82d0a64b9d389c50666c1ce0ec27ee /kernel/cpuset.c | |
parent | 67f4c36f83455b253445b2cb28ac9a2c4f85d99a (diff) |
cgroup: pass around cgroup_subsys_state instead of cgroup in file methods
cgroup is currently in the process of transitioning to using struct
cgroup_subsys_state * as the primary handle instead of struct cgroup.
Please see the previous commit which converts the subsystem methods
for rationale.
This patch converts all cftype file operations to take @css instead of
@cgroup. cftypes for the cgroup core files don't have their subsytem
pointer set. These will automatically use the dummy_css added by the
previous patch and can be converted the same way.
Most subsystem conversions are straight forwards but there are some
interesting ones.
* freezer: update_if_frozen() is also converted to take @css instead
of @cgroup for consistency. This will make the code look simpler
too once iterators are converted to use css.
* memory/vmpressure: mem_cgroup_from_css() needs to be exported to
vmpressure while mem_cgroup_from_cont() can be made static.
Updated accordingly.
* cpu: cgroup_tg() doesn't have any user left. Removed.
* cpuacct: cgroup_ca() doesn't have any user left. Removed.
* hugetlb: hugetlb_cgroup_form_cgroup() doesn't have any user left.
Removed.
* net_cls: cgrp_cls_state() doesn't have any user left. Removed.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Li Zefan <lizefan@huawei.com>
Acked-by: Michal Hocko <mhocko@suse.cz>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Acked-by: Aristeu Rozanski <aris@redhat.com>
Acked-by: Daniel Wagner <daniel.wagner@bmw-carit.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Balbir Singh <bsingharora@gmail.com>
Cc: Matt Helsley <matthltc@us.ibm.com>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/cpuset.c')
-rw-r--r-- | kernel/cpuset.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 8ce3fdc3dfcc..89b76e1d3aa1 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c | |||
@@ -1603,9 +1603,10 @@ typedef enum { | |||
1603 | FILE_SPREAD_SLAB, | 1603 | FILE_SPREAD_SLAB, |
1604 | } cpuset_filetype_t; | 1604 | } cpuset_filetype_t; |
1605 | 1605 | ||
1606 | static int cpuset_write_u64(struct cgroup *cgrp, struct cftype *cft, u64 val) | 1606 | static int cpuset_write_u64(struct cgroup_subsys_state *css, struct cftype *cft, |
1607 | u64 val) | ||
1607 | { | 1608 | { |
1608 | struct cpuset *cs = cgroup_cs(cgrp); | 1609 | struct cpuset *cs = css_cs(css); |
1609 | cpuset_filetype_t type = cft->private; | 1610 | cpuset_filetype_t type = cft->private; |
1610 | int retval = -ENODEV; | 1611 | int retval = -ENODEV; |
1611 | 1612 | ||
@@ -1650,9 +1651,10 @@ out_unlock: | |||
1650 | return retval; | 1651 | return retval; |
1651 | } | 1652 | } |
1652 | 1653 | ||
1653 | static int cpuset_write_s64(struct cgroup *cgrp, struct cftype *cft, s64 val) | 1654 | static int cpuset_write_s64(struct cgroup_subsys_state *css, struct cftype *cft, |
1655 | s64 val) | ||
1654 | { | 1656 | { |
1655 | struct cpuset *cs = cgroup_cs(cgrp); | 1657 | struct cpuset *cs = css_cs(css); |
1656 | cpuset_filetype_t type = cft->private; | 1658 | cpuset_filetype_t type = cft->private; |
1657 | int retval = -ENODEV; | 1659 | int retval = -ENODEV; |
1658 | 1660 | ||
@@ -1676,10 +1678,10 @@ out_unlock: | |||
1676 | /* | 1678 | /* |
1677 | * Common handling for a write to a "cpus" or "mems" file. | 1679 | * Common handling for a write to a "cpus" or "mems" file. |
1678 | */ | 1680 | */ |
1679 | static int cpuset_write_resmask(struct cgroup *cgrp, struct cftype *cft, | 1681 | static int cpuset_write_resmask(struct cgroup_subsys_state *css, |
1680 | const char *buf) | 1682 | struct cftype *cft, const char *buf) |
1681 | { | 1683 | { |
1682 | struct cpuset *cs = cgroup_cs(cgrp); | 1684 | struct cpuset *cs = css_cs(css); |
1683 | struct cpuset *trialcs; | 1685 | struct cpuset *trialcs; |
1684 | int retval = -ENODEV; | 1686 | int retval = -ENODEV; |
1685 | 1687 | ||
@@ -1758,13 +1760,12 @@ static size_t cpuset_sprintf_memlist(char *page, struct cpuset *cs) | |||
1758 | return count; | 1760 | return count; |
1759 | } | 1761 | } |
1760 | 1762 | ||
1761 | static ssize_t cpuset_common_file_read(struct cgroup *cgrp, | 1763 | static ssize_t cpuset_common_file_read(struct cgroup_subsys_state *css, |
1762 | struct cftype *cft, | 1764 | struct cftype *cft, struct file *file, |
1763 | struct file *file, | 1765 | char __user *buf, size_t nbytes, |
1764 | char __user *buf, | 1766 | loff_t *ppos) |
1765 | size_t nbytes, loff_t *ppos) | ||
1766 | { | 1767 | { |
1767 | struct cpuset *cs = cgroup_cs(cgrp); | 1768 | struct cpuset *cs = css_cs(css); |
1768 | cpuset_filetype_t type = cft->private; | 1769 | cpuset_filetype_t type = cft->private; |
1769 | char *page; | 1770 | char *page; |
1770 | ssize_t retval = 0; | 1771 | ssize_t retval = 0; |
@@ -1794,9 +1795,9 @@ out: | |||
1794 | return retval; | 1795 | return retval; |
1795 | } | 1796 | } |
1796 | 1797 | ||
1797 | static u64 cpuset_read_u64(struct cgroup *cgrp, struct cftype *cft) | 1798 | static u64 cpuset_read_u64(struct cgroup_subsys_state *css, struct cftype *cft) |
1798 | { | 1799 | { |
1799 | struct cpuset *cs = cgroup_cs(cgrp); | 1800 | struct cpuset *cs = css_cs(css); |
1800 | cpuset_filetype_t type = cft->private; | 1801 | cpuset_filetype_t type = cft->private; |
1801 | switch (type) { | 1802 | switch (type) { |
1802 | case FILE_CPU_EXCLUSIVE: | 1803 | case FILE_CPU_EXCLUSIVE: |
@@ -1825,9 +1826,9 @@ static u64 cpuset_read_u64(struct cgroup *cgrp, struct cftype *cft) | |||
1825 | return 0; | 1826 | return 0; |
1826 | } | 1827 | } |
1827 | 1828 | ||
1828 | static s64 cpuset_read_s64(struct cgroup *cgrp, struct cftype *cft) | 1829 | static s64 cpuset_read_s64(struct cgroup_subsys_state *css, struct cftype *cft) |
1829 | { | 1830 | { |
1830 | struct cpuset *cs = cgroup_cs(cgrp); | 1831 | struct cpuset *cs = css_cs(css); |
1831 | cpuset_filetype_t type = cft->private; | 1832 | cpuset_filetype_t type = cft->private; |
1832 | switch (type) { | 1833 | switch (type) { |
1833 | case FILE_SCHED_RELAX_DOMAIN_LEVEL: | 1834 | case FILE_SCHED_RELAX_DOMAIN_LEVEL: |