mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
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 <[email protected]> Acked-by: Li Zefan <[email protected]> Acked-by: Michal Hocko <[email protected]> Acked-by: Vivek Goyal <[email protected]> Acked-by: Aristeu Rozanski <[email protected]> Acked-by: Daniel Wagner <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Balbir Singh <[email protected]> Cc: Matt Helsley <[email protected]> Cc: Jens Axboe <[email protected]> Cc: Steven Rostedt <[email protected]>
This commit is contained in:
parent
67f4c36f83
commit
182446d087
17 changed files with 322 additions and 328 deletions
|
|
@ -437,10 +437,10 @@ struct request_list *__blk_queue_next_rl(struct request_list *rl,
|
|||
return &blkg->rl;
|
||||
}
|
||||
|
||||
static int blkcg_reset_stats(struct cgroup *cgroup, struct cftype *cftype,
|
||||
u64 val)
|
||||
static int blkcg_reset_stats(struct cgroup_subsys_state *css,
|
||||
struct cftype *cftype, u64 val)
|
||||
{
|
||||
struct blkcg *blkcg = cgroup_to_blkcg(cgroup);
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
struct blkcg_gq *blkg;
|
||||
int i;
|
||||
|
||||
|
|
|
|||
|
|
@ -1293,10 +1293,10 @@ static u64 tg_prfill_cpu_rwstat(struct seq_file *sf,
|
|||
return __blkg_prfill_rwstat(sf, pd, &rwstat);
|
||||
}
|
||||
|
||||
static int tg_print_cpu_rwstat(struct cgroup *cgrp, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
static int tg_print_cpu_rwstat(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, struct seq_file *sf)
|
||||
{
|
||||
struct blkcg *blkcg = cgroup_to_blkcg(cgrp);
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
|
||||
blkcg_print_blkgs(sf, blkcg, tg_prfill_cpu_rwstat, &blkcg_policy_throtl,
|
||||
cft->private, true);
|
||||
|
|
@ -1325,26 +1325,26 @@ static u64 tg_prfill_conf_uint(struct seq_file *sf, struct blkg_policy_data *pd,
|
|||
return __blkg_prfill_u64(sf, pd, v);
|
||||
}
|
||||
|
||||
static int tg_print_conf_u64(struct cgroup *cgrp, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
static int tg_print_conf_u64(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, struct seq_file *sf)
|
||||
{
|
||||
blkcg_print_blkgs(sf, cgroup_to_blkcg(cgrp), tg_prfill_conf_u64,
|
||||
blkcg_print_blkgs(sf, css_to_blkcg(css), tg_prfill_conf_u64,
|
||||
&blkcg_policy_throtl, cft->private, false);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int tg_print_conf_uint(struct cgroup *cgrp, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
static int tg_print_conf_uint(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, struct seq_file *sf)
|
||||
{
|
||||
blkcg_print_blkgs(sf, cgroup_to_blkcg(cgrp), tg_prfill_conf_uint,
|
||||
blkcg_print_blkgs(sf, css_to_blkcg(css), tg_prfill_conf_uint,
|
||||
&blkcg_policy_throtl, cft->private, false);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int tg_set_conf(struct cgroup *cgrp, struct cftype *cft, const char *buf,
|
||||
bool is_u64)
|
||||
static int tg_set_conf(struct cgroup_subsys_state *css, struct cftype *cft,
|
||||
const char *buf, bool is_u64)
|
||||
{
|
||||
struct blkcg *blkcg = cgroup_to_blkcg(cgrp);
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
struct blkg_conf_ctx ctx;
|
||||
struct throtl_grp *tg;
|
||||
struct throtl_service_queue *sq;
|
||||
|
|
@ -1403,16 +1403,16 @@ static int tg_set_conf(struct cgroup *cgrp, struct cftype *cft, const char *buf,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int tg_set_conf_u64(struct cgroup *cgrp, struct cftype *cft,
|
||||
static int tg_set_conf_u64(struct cgroup_subsys_state *css, struct cftype *cft,
|
||||
const char *buf)
|
||||
{
|
||||
return tg_set_conf(cgrp, cft, buf, true);
|
||||
return tg_set_conf(css, cft, buf, true);
|
||||
}
|
||||
|
||||
static int tg_set_conf_uint(struct cgroup *cgrp, struct cftype *cft,
|
||||
static int tg_set_conf_uint(struct cgroup_subsys_state *css, struct cftype *cft,
|
||||
const char *buf)
|
||||
{
|
||||
return tg_set_conf(cgrp, cft, buf, false);
|
||||
return tg_set_conf(css, cft, buf, false);
|
||||
}
|
||||
|
||||
static struct cftype throtl_files[] = {
|
||||
|
|
|
|||
|
|
@ -1607,12 +1607,11 @@ static u64 cfqg_prfill_weight_device(struct seq_file *sf,
|
|||
return __blkg_prfill_u64(sf, pd, cfqg->dev_weight);
|
||||
}
|
||||
|
||||
static int cfqg_print_weight_device(struct cgroup *cgrp, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
static int cfqg_print_weight_device(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, struct seq_file *sf)
|
||||
{
|
||||
blkcg_print_blkgs(sf, cgroup_to_blkcg(cgrp),
|
||||
cfqg_prfill_weight_device, &blkcg_policy_cfq, 0,
|
||||
false);
|
||||
blkcg_print_blkgs(sf, css_to_blkcg(css), cfqg_prfill_weight_device,
|
||||
&blkcg_policy_cfq, 0, false);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1626,35 +1625,34 @@ static u64 cfqg_prfill_leaf_weight_device(struct seq_file *sf,
|
|||
return __blkg_prfill_u64(sf, pd, cfqg->dev_leaf_weight);
|
||||
}
|
||||
|
||||
static int cfqg_print_leaf_weight_device(struct cgroup *cgrp,
|
||||
static int cfqg_print_leaf_weight_device(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
{
|
||||
blkcg_print_blkgs(sf, cgroup_to_blkcg(cgrp),
|
||||
cfqg_prfill_leaf_weight_device, &blkcg_policy_cfq, 0,
|
||||
false);
|
||||
blkcg_print_blkgs(sf, css_to_blkcg(css), cfqg_prfill_leaf_weight_device,
|
||||
&blkcg_policy_cfq, 0, false);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cfq_print_weight(struct cgroup *cgrp, struct cftype *cft,
|
||||
static int cfq_print_weight(struct cgroup_subsys_state *css, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
{
|
||||
seq_printf(sf, "%u\n", cgroup_to_blkcg(cgrp)->cfq_weight);
|
||||
seq_printf(sf, "%u\n", css_to_blkcg(css)->cfq_weight);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cfq_print_leaf_weight(struct cgroup *cgrp, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
static int cfq_print_leaf_weight(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, struct seq_file *sf)
|
||||
{
|
||||
seq_printf(sf, "%u\n",
|
||||
cgroup_to_blkcg(cgrp)->cfq_leaf_weight);
|
||||
seq_printf(sf, "%u\n", css_to_blkcg(css)->cfq_leaf_weight);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __cfqg_set_weight_device(struct cgroup *cgrp, struct cftype *cft,
|
||||
const char *buf, bool is_leaf_weight)
|
||||
static int __cfqg_set_weight_device(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, const char *buf,
|
||||
bool is_leaf_weight)
|
||||
{
|
||||
struct blkcg *blkcg = cgroup_to_blkcg(cgrp);
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
struct blkg_conf_ctx ctx;
|
||||
struct cfq_group *cfqg;
|
||||
int ret;
|
||||
|
|
@ -1680,22 +1678,22 @@ static int __cfqg_set_weight_device(struct cgroup *cgrp, struct cftype *cft,
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int cfqg_set_weight_device(struct cgroup *cgrp, struct cftype *cft,
|
||||
const char *buf)
|
||||
static int cfqg_set_weight_device(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, const char *buf)
|
||||
{
|
||||
return __cfqg_set_weight_device(cgrp, cft, buf, false);
|
||||
return __cfqg_set_weight_device(css, cft, buf, false);
|
||||
}
|
||||
|
||||
static int cfqg_set_leaf_weight_device(struct cgroup *cgrp, struct cftype *cft,
|
||||
const char *buf)
|
||||
static int cfqg_set_leaf_weight_device(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, const char *buf)
|
||||
{
|
||||
return __cfqg_set_weight_device(cgrp, cft, buf, true);
|
||||
return __cfqg_set_weight_device(css, cft, buf, true);
|
||||
}
|
||||
|
||||
static int __cfq_set_weight(struct cgroup *cgrp, struct cftype *cft, u64 val,
|
||||
bool is_leaf_weight)
|
||||
static int __cfq_set_weight(struct cgroup_subsys_state *css, struct cftype *cft,
|
||||
u64 val, bool is_leaf_weight)
|
||||
{
|
||||
struct blkcg *blkcg = cgroup_to_blkcg(cgrp);
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
struct blkcg_gq *blkg;
|
||||
|
||||
if (val < CFQ_WEIGHT_MIN || val > CFQ_WEIGHT_MAX)
|
||||
|
|
@ -1727,30 +1725,32 @@ static int __cfq_set_weight(struct cgroup *cgrp, struct cftype *cft, u64 val,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int cfq_set_weight(struct cgroup *cgrp, struct cftype *cft, u64 val)
|
||||
static int cfq_set_weight(struct cgroup_subsys_state *css, struct cftype *cft,
|
||||
u64 val)
|
||||
{
|
||||
return __cfq_set_weight(cgrp, cft, val, false);
|
||||
return __cfq_set_weight(css, cft, val, false);
|
||||
}
|
||||
|
||||
static int cfq_set_leaf_weight(struct cgroup *cgrp, struct cftype *cft, u64 val)
|
||||
static int cfq_set_leaf_weight(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, u64 val)
|
||||
{
|
||||
return __cfq_set_weight(cgrp, cft, val, true);
|
||||
return __cfq_set_weight(css, cft, val, true);
|
||||
}
|
||||
|
||||
static int cfqg_print_stat(struct cgroup *cgrp, struct cftype *cft,
|
||||
static int cfqg_print_stat(struct cgroup_subsys_state *css, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
{
|
||||
struct blkcg *blkcg = cgroup_to_blkcg(cgrp);
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
|
||||
blkcg_print_blkgs(sf, blkcg, blkg_prfill_stat, &blkcg_policy_cfq,
|
||||
cft->private, false);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cfqg_print_rwstat(struct cgroup *cgrp, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
static int cfqg_print_rwstat(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, struct seq_file *sf)
|
||||
{
|
||||
struct blkcg *blkcg = cgroup_to_blkcg(cgrp);
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
|
||||
blkcg_print_blkgs(sf, blkcg, blkg_prfill_rwstat, &blkcg_policy_cfq,
|
||||
cft->private, true);
|
||||
|
|
@ -1773,20 +1773,20 @@ static u64 cfqg_prfill_rwstat_recursive(struct seq_file *sf,
|
|||
return __blkg_prfill_rwstat(sf, pd, &sum);
|
||||
}
|
||||
|
||||
static int cfqg_print_stat_recursive(struct cgroup *cgrp, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
static int cfqg_print_stat_recursive(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, struct seq_file *sf)
|
||||
{
|
||||
struct blkcg *blkcg = cgroup_to_blkcg(cgrp);
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
|
||||
blkcg_print_blkgs(sf, blkcg, cfqg_prfill_stat_recursive,
|
||||
&blkcg_policy_cfq, cft->private, false);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int cfqg_print_rwstat_recursive(struct cgroup *cgrp, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
static int cfqg_print_rwstat_recursive(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, struct seq_file *sf)
|
||||
{
|
||||
struct blkcg *blkcg = cgroup_to_blkcg(cgrp);
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
|
||||
blkcg_print_blkgs(sf, blkcg, cfqg_prfill_rwstat_recursive,
|
||||
&blkcg_policy_cfq, cft->private, true);
|
||||
|
|
@ -1810,10 +1810,10 @@ static u64 cfqg_prfill_avg_queue_size(struct seq_file *sf,
|
|||
}
|
||||
|
||||
/* print avg_queue_size */
|
||||
static int cfqg_print_avg_queue_size(struct cgroup *cgrp, struct cftype *cft,
|
||||
struct seq_file *sf)
|
||||
static int cfqg_print_avg_queue_size(struct cgroup_subsys_state *css,
|
||||
struct cftype *cft, struct seq_file *sf)
|
||||
{
|
||||
struct blkcg *blkcg = cgroup_to_blkcg(cgrp);
|
||||
struct blkcg *blkcg = css_to_blkcg(css);
|
||||
|
||||
blkcg_print_blkgs(sf, blkcg, cfqg_prfill_avg_queue_size,
|
||||
&blkcg_policy_cfq, 0, false);
|
||||
|
|
|
|||
Loading…
Reference in a new issue