mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
blkcg: make blkcg_policy methods take a pointer to blkcg_policy_data
The newly added ->pd_alloc_fn() and ->pd_free_fn() deal with pd (blkg_policy_data) while the older ones use blkg (blkcg_gq). As using blkg doesn't make sense for ->pd_alloc_fn() and after allocation pd can always be mapped to blkg and given that these are policy-specific methods, it makes sense to converge on pd. This patch makes all methods deal with pd instead of blkg. Most conversions are trivial. In blk-cgroup.c, a couple method invocation sites now test whether pd exists instead of policy state for consistency. This shouldn't cause any behavioral differences. Signed-off-by: Tejun Heo <[email protected]> Cc: Vivek Goyal <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
parent
b2ce2643cc
commit
a9520cd6f2
4 changed files with 26 additions and 27 deletions
|
|
@ -242,7 +242,7 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg,
|
|||
struct blkcg_policy *pol = blkcg_policy[i];
|
||||
|
||||
if (blkg->pd[i] && pol->pd_init_fn)
|
||||
pol->pd_init_fn(blkg);
|
||||
pol->pd_init_fn(blkg->pd[i]);
|
||||
}
|
||||
|
||||
/* insert */
|
||||
|
|
@ -256,7 +256,7 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg,
|
|||
struct blkcg_policy *pol = blkcg_policy[i];
|
||||
|
||||
if (blkg->pd[i] && pol->pd_online_fn)
|
||||
pol->pd_online_fn(blkg);
|
||||
pol->pd_online_fn(blkg->pd[i]);
|
||||
}
|
||||
}
|
||||
blkg->online = true;
|
||||
|
|
@ -347,7 +347,7 @@ static void blkg_destroy(struct blkcg_gq *blkg)
|
|||
struct blkcg_policy *pol = blkcg_policy[i];
|
||||
|
||||
if (blkg->pd[i] && pol->pd_offline_fn)
|
||||
pol->pd_offline_fn(blkg);
|
||||
pol->pd_offline_fn(blkg->pd[i]);
|
||||
}
|
||||
blkg->online = false;
|
||||
|
||||
|
|
@ -468,9 +468,8 @@ static int blkcg_reset_stats(struct cgroup_subsys_state *css,
|
|||
for (i = 0; i < BLKCG_MAX_POLS; i++) {
|
||||
struct blkcg_policy *pol = blkcg_policy[i];
|
||||
|
||||
if (blkcg_policy_enabled(blkg->q, pol) &&
|
||||
pol->pd_reset_stats_fn)
|
||||
pol->pd_reset_stats_fn(blkg);
|
||||
if (blkg->pd[i] && pol->pd_reset_stats_fn)
|
||||
pol->pd_reset_stats_fn(blkg->pd[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1076,7 +1075,7 @@ pd_prealloc:
|
|||
pd->blkg = blkg;
|
||||
pd->plid = pol->plid;
|
||||
if (pol->pd_init_fn)
|
||||
pol->pd_init_fn(blkg);
|
||||
pol->pd_init_fn(pd);
|
||||
}
|
||||
|
||||
__set_bit(pol->plid, q->blkcg_pols);
|
||||
|
|
@ -1116,10 +1115,9 @@ void blkcg_deactivate_policy(struct request_queue *q,
|
|||
/* grab blkcg lock too while removing @pd from @blkg */
|
||||
spin_lock(&blkg->blkcg->lock);
|
||||
|
||||
if (pol->pd_offline_fn)
|
||||
pol->pd_offline_fn(blkg);
|
||||
|
||||
if (blkg->pd[pol->plid]) {
|
||||
if (pol->pd_offline_fn)
|
||||
pol->pd_offline_fn(blkg->pd[pol->plid]);
|
||||
pol->pd_free_fn(blkg->pd[pol->plid]);
|
||||
blkg->pd[pol->plid] = NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue