diff options
author | Tejun Heo <tj@kernel.org> | 2013-05-14 16:52:30 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2013-05-14 16:52:30 -0400 |
commit | dd4a4ffc0a4723cd0bef065af549803d256e1f7e (patch) | |
tree | a246b7307e85983c6633eadbd49f8c3b24dc1dd6 /block/blk-cgroup.c | |
parent | 2423c9c3f0ffffa8f87cbdafe9781273c5d1b6a2 (diff) |
blkcg: move blkg_for_each_descendant_pre() to block/blk-cgroup.h
blk-throttle hierarchy support will make use of it. Move
blkg_for_each_descendant_pre() from block/blk-cgroup.c to
block/blk-cgroup.h.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Diffstat (limited to 'block/blk-cgroup.c')
-rw-r--r-- | block/blk-cgroup.c | 24 |
1 files changed, 2 insertions, 22 deletions
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c index 7fc35f683c4e..b950306838ad 100644 --- a/block/blk-cgroup.c +++ b/block/blk-cgroup.c | |||
@@ -32,26 +32,6 @@ EXPORT_SYMBOL_GPL(blkcg_root); | |||
32 | 32 | ||
33 | static struct blkcg_policy *blkcg_policy[BLKCG_MAX_POLS]; | 33 | static struct blkcg_policy *blkcg_policy[BLKCG_MAX_POLS]; |
34 | 34 | ||
35 | static struct blkcg_gq *__blkg_lookup(struct blkcg *blkcg, | ||
36 | struct request_queue *q, bool update_hint); | ||
37 | |||
38 | /** | ||
39 | * blkg_for_each_descendant_pre - pre-order walk of a blkg's descendants | ||
40 | * @d_blkg: loop cursor pointing to the current descendant | ||
41 | * @pos_cgrp: used for iteration | ||
42 | * @p_blkg: target blkg to walk descendants of | ||
43 | * | ||
44 | * Walk @c_blkg through the descendants of @p_blkg. Must be used with RCU | ||
45 | * read locked. If called under either blkcg or queue lock, the iteration | ||
46 | * is guaranteed to include all and only online blkgs. The caller may | ||
47 | * update @pos_cgrp by calling cgroup_rightmost_descendant() to skip | ||
48 | * subtree. | ||
49 | */ | ||
50 | #define blkg_for_each_descendant_pre(d_blkg, pos_cgrp, p_blkg) \ | ||
51 | cgroup_for_each_descendant_pre((pos_cgrp), (p_blkg)->blkcg->css.cgroup) \ | ||
52 | if (((d_blkg) = __blkg_lookup(cgroup_to_blkcg(pos_cgrp), \ | ||
53 | (p_blkg)->q, false))) | ||
54 | |||
55 | static bool blkcg_policy_enabled(struct request_queue *q, | 35 | static bool blkcg_policy_enabled(struct request_queue *q, |
56 | const struct blkcg_policy *pol) | 36 | const struct blkcg_policy *pol) |
57 | { | 37 | { |
@@ -158,8 +138,8 @@ err_free: | |||
158 | * @q's bypass state. If @update_hint is %true, the caller should be | 138 | * @q's bypass state. If @update_hint is %true, the caller should be |
159 | * holding @q->queue_lock and lookup hint is updated on success. | 139 | * holding @q->queue_lock and lookup hint is updated on success. |
160 | */ | 140 | */ |
161 | static struct blkcg_gq *__blkg_lookup(struct blkcg *blkcg, | 141 | struct blkcg_gq *__blkg_lookup(struct blkcg *blkcg, struct request_queue *q, |
162 | struct request_queue *q, bool update_hint) | 142 | bool update_hint) |
163 | { | 143 | { |
164 | struct blkcg_gq *blkg; | 144 | struct blkcg_gq *blkg; |
165 | 145 | ||