aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/cpuset.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2013-08-08 20:11:24 -0400
committerTejun Heo <tj@kernel.org>2013-08-08 20:11:24 -0400
commit182446d087906de40e514573a92a97b203695f71 (patch)
tree6aee96219c82d0a64b9d389c50666c1ce0ec27ee /kernel/cpuset.c
parent67f4c36f83455b253445b2cb28ac9a2c4f85d99a (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.c35
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
1606static int cpuset_write_u64(struct cgroup *cgrp, struct cftype *cft, u64 val) 1606static 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
1653static int cpuset_write_s64(struct cgroup *cgrp, struct cftype *cft, s64 val) 1654static 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 */
1679static int cpuset_write_resmask(struct cgroup *cgrp, struct cftype *cft, 1681static 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
1761static ssize_t cpuset_common_file_read(struct cgroup *cgrp, 1763static 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
1797static u64 cpuset_read_u64(struct cgroup *cgrp, struct cftype *cft) 1798static 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
1828static s64 cpuset_read_s64(struct cgroup *cgrp, struct cftype *cft) 1829static 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: