mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
cgroup: make hierarchy iterators deal with cgroup_subsys_state instead of cgroup
cgroup is currently in the process of transitioning to using css (cgroup_subsys_state) as the primary handle instead of cgroup in subsystem API. For hierarchy iterators, this is beneficial because * In most cases, css is the only thing subsystems care about anyway. * On the planned unified hierarchy, iterations for different subsystems will need to skip over different subtrees of the hierarchy depending on which subsystems are enabled on each cgroup. Passing around css makes it unnecessary to explicitly specify the subsystem in question as css is intersection between cgroup and subsystem * For the planned unified hierarchy, css's would need to be created and destroyed dynamically independent from cgroup hierarchy. Having cgroup core manage css iteration makes enforcing deref rules a lot easier. Most subsystem conversions are straight-forward. Noteworthy changes are * blkio: cgroup_to_blkcg() is no longer used. Removed. * freezer: cgroup_freezer() is no longer used. Removed. * devices: cgroup_to_devcgroup() is no longer used. 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]> Cc: Johannes Weiner <[email protected]> Cc: Balbir Singh <[email protected]> Cc: Matt Helsley <[email protected]> Cc: Jens Axboe <[email protected]>
This commit is contained in:
parent
f48e3924dc
commit
492eb21b98
9 changed files with 187 additions and 187 deletions
|
|
@ -1349,7 +1349,7 @@ static int tg_set_conf(struct cgroup_subsys_state *css, struct cftype *cft,
|
|||
struct throtl_grp *tg;
|
||||
struct throtl_service_queue *sq;
|
||||
struct blkcg_gq *blkg;
|
||||
struct cgroup *pos_cgrp;
|
||||
struct cgroup_subsys_state *pos_css;
|
||||
int ret;
|
||||
|
||||
ret = blkg_conf_prep(blkcg, &blkcg_policy_throtl, buf, &ctx);
|
||||
|
|
@ -1380,7 +1380,7 @@ static int tg_set_conf(struct cgroup_subsys_state *css, struct cftype *cft,
|
|||
* blk-throttle.
|
||||
*/
|
||||
tg_update_has_rules(tg);
|
||||
blkg_for_each_descendant_pre(blkg, pos_cgrp, ctx.blkg)
|
||||
blkg_for_each_descendant_pre(blkg, pos_css, ctx.blkg)
|
||||
tg_update_has_rules(blkg_to_tg(blkg));
|
||||
|
||||
/*
|
||||
|
|
@ -1623,7 +1623,7 @@ void blk_throtl_drain(struct request_queue *q)
|
|||
{
|
||||
struct throtl_data *td = q->td;
|
||||
struct blkcg_gq *blkg;
|
||||
struct cgroup *pos_cgrp;
|
||||
struct cgroup_subsys_state *pos_css;
|
||||
struct bio *bio;
|
||||
int rw;
|
||||
|
||||
|
|
@ -1636,7 +1636,7 @@ void blk_throtl_drain(struct request_queue *q)
|
|||
* better to walk service_queue tree directly but blkg walk is
|
||||
* easier.
|
||||
*/
|
||||
blkg_for_each_descendant_post(blkg, pos_cgrp, td->queue->root_blkg)
|
||||
blkg_for_each_descendant_post(blkg, pos_css, td->queue->root_blkg)
|
||||
tg_drain_bios(&blkg_to_tg(blkg)->service_queue);
|
||||
|
||||
tg_drain_bios(&td_root_tg(td)->service_queue);
|
||||
|
|
|
|||
Loading…
Reference in a new issue