diff options
| -rw-r--r-- | block/blk-cgroup.c | 7 | ||||
| -rw-r--r-- | block/blk-cgroup.h | 3 | ||||
| -rw-r--r-- | block/blk-throttle.c | 9 | ||||
| -rw-r--r-- | block/cfq-iosched.c | 11 |
4 files changed, 19 insertions, 11 deletions
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c index f0605ab2a761..471fdcc5df85 100644 --- a/block/blk-cgroup.c +++ b/block/blk-cgroup.c | |||
| @@ -114,6 +114,13 @@ struct blkio_cgroup *cgroup_to_blkio_cgroup(struct cgroup *cgroup) | |||
| 114 | } | 114 | } |
| 115 | EXPORT_SYMBOL_GPL(cgroup_to_blkio_cgroup); | 115 | EXPORT_SYMBOL_GPL(cgroup_to_blkio_cgroup); |
| 116 | 116 | ||
| 117 | struct blkio_cgroup *task_blkio_cgroup(struct task_struct *tsk) | ||
| 118 | { | ||
| 119 | return container_of(task_subsys_state(tsk, blkio_subsys_id), | ||
| 120 | struct blkio_cgroup, css); | ||
| 121 | } | ||
| 122 | EXPORT_SYMBOL_GPL(task_blkio_cgroup); | ||
| 123 | |||
| 117 | static inline void | 124 | static inline void |
| 118 | blkio_update_group_weight(struct blkio_group *blkg, unsigned int weight) | 125 | blkio_update_group_weight(struct blkio_group *blkg, unsigned int weight) |
| 119 | { | 126 | { |
diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h index 10919fae2d3a..c774930cc206 100644 --- a/block/blk-cgroup.h +++ b/block/blk-cgroup.h | |||
| @@ -291,6 +291,7 @@ static inline void blkiocg_set_start_empty_time(struct blkio_group *blkg) {} | |||
| 291 | #if defined(CONFIG_BLK_CGROUP) || defined(CONFIG_BLK_CGROUP_MODULE) | 291 | #if defined(CONFIG_BLK_CGROUP) || defined(CONFIG_BLK_CGROUP_MODULE) |
| 292 | extern struct blkio_cgroup blkio_root_cgroup; | 292 | extern struct blkio_cgroup blkio_root_cgroup; |
| 293 | extern struct blkio_cgroup *cgroup_to_blkio_cgroup(struct cgroup *cgroup); | 293 | extern struct blkio_cgroup *cgroup_to_blkio_cgroup(struct cgroup *cgroup); |
| 294 | extern struct blkio_cgroup *task_blkio_cgroup(struct task_struct *tsk); | ||
| 294 | extern void blkiocg_add_blkio_group(struct blkio_cgroup *blkcg, | 295 | extern void blkiocg_add_blkio_group(struct blkio_cgroup *blkcg, |
| 295 | struct blkio_group *blkg, void *key, dev_t dev, | 296 | struct blkio_group *blkg, void *key, dev_t dev, |
| 296 | enum blkio_policy_id plid); | 297 | enum blkio_policy_id plid); |
| @@ -314,6 +315,8 @@ void blkiocg_update_io_remove_stats(struct blkio_group *blkg, | |||
| 314 | struct cgroup; | 315 | struct cgroup; |
| 315 | static inline struct blkio_cgroup * | 316 | static inline struct blkio_cgroup * |
| 316 | cgroup_to_blkio_cgroup(struct cgroup *cgroup) { return NULL; } | 317 | cgroup_to_blkio_cgroup(struct cgroup *cgroup) { return NULL; } |
| 318 | static inline struct blkio_cgroup * | ||
| 319 | task_blkio_cgroup(struct task_struct *tsk) { return NULL; } | ||
| 317 | 320 | ||
| 318 | static inline void blkiocg_add_blkio_group(struct blkio_cgroup *blkcg, | 321 | static inline void blkiocg_add_blkio_group(struct blkio_cgroup *blkcg, |
| 319 | struct blkio_group *blkg, void *key, dev_t dev, | 322 | struct blkio_group *blkg, void *key, dev_t dev, |
diff --git a/block/blk-throttle.c b/block/blk-throttle.c index 0475a22a420d..252a81a306f7 100644 --- a/block/blk-throttle.c +++ b/block/blk-throttle.c | |||
| @@ -160,9 +160,8 @@ static void throtl_put_tg(struct throtl_grp *tg) | |||
| 160 | } | 160 | } |
| 161 | 161 | ||
| 162 | static struct throtl_grp * throtl_find_alloc_tg(struct throtl_data *td, | 162 | static struct throtl_grp * throtl_find_alloc_tg(struct throtl_data *td, |
| 163 | struct cgroup *cgroup) | 163 | struct blkio_cgroup *blkcg) |
| 164 | { | 164 | { |
| 165 | struct blkio_cgroup *blkcg = cgroup_to_blkio_cgroup(cgroup); | ||
| 166 | struct throtl_grp *tg = NULL; | 165 | struct throtl_grp *tg = NULL; |
| 167 | void *key = td; | 166 | void *key = td; |
| 168 | struct backing_dev_info *bdi = &td->queue->backing_dev_info; | 167 | struct backing_dev_info *bdi = &td->queue->backing_dev_info; |
| @@ -229,12 +228,12 @@ done: | |||
| 229 | 228 | ||
| 230 | static struct throtl_grp * throtl_get_tg(struct throtl_data *td) | 229 | static struct throtl_grp * throtl_get_tg(struct throtl_data *td) |
| 231 | { | 230 | { |
| 232 | struct cgroup *cgroup; | ||
| 233 | struct throtl_grp *tg = NULL; | 231 | struct throtl_grp *tg = NULL; |
| 232 | struct blkio_cgroup *blkcg; | ||
| 234 | 233 | ||
| 235 | rcu_read_lock(); | 234 | rcu_read_lock(); |
| 236 | cgroup = task_cgroup(current, blkio_subsys_id); | 235 | blkcg = task_blkio_cgroup(current); |
| 237 | tg = throtl_find_alloc_tg(td, cgroup); | 236 | tg = throtl_find_alloc_tg(td, blkcg); |
| 238 | if (!tg) | 237 | if (!tg) |
| 239 | tg = &td->root_tg; | 238 | tg = &td->root_tg; |
| 240 | rcu_read_unlock(); | 239 | rcu_read_unlock(); |
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index 5b52011e3a40..ab7a9e6a9b1c 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c | |||
| @@ -1014,10 +1014,9 @@ void cfq_update_blkio_group_weight(void *key, struct blkio_group *blkg, | |||
| 1014 | cfqg->needs_update = true; | 1014 | cfqg->needs_update = true; |
| 1015 | } | 1015 | } |
| 1016 | 1016 | ||
| 1017 | static struct cfq_group * | 1017 | static struct cfq_group * cfq_find_alloc_cfqg(struct cfq_data *cfqd, |
| 1018 | cfq_find_alloc_cfqg(struct cfq_data *cfqd, struct cgroup *cgroup, int create) | 1018 | struct blkio_cgroup *blkcg, int create) |
| 1019 | { | 1019 | { |
| 1020 | struct blkio_cgroup *blkcg = cgroup_to_blkio_cgroup(cgroup); | ||
| 1021 | struct cfq_group *cfqg = NULL; | 1020 | struct cfq_group *cfqg = NULL; |
| 1022 | void *key = cfqd; | 1021 | void *key = cfqd; |
| 1023 | int i, j; | 1022 | int i, j; |
| @@ -1079,12 +1078,12 @@ done: | |||
| 1079 | */ | 1078 | */ |
| 1080 | static struct cfq_group *cfq_get_cfqg(struct cfq_data *cfqd, int create) | 1079 | static struct cfq_group *cfq_get_cfqg(struct cfq_data *cfqd, int create) |
| 1081 | { | 1080 | { |
| 1082 | struct cgroup *cgroup; | 1081 | struct blkio_cgroup *blkcg; |
| 1083 | struct cfq_group *cfqg = NULL; | 1082 | struct cfq_group *cfqg = NULL; |
| 1084 | 1083 | ||
| 1085 | rcu_read_lock(); | 1084 | rcu_read_lock(); |
| 1086 | cgroup = task_cgroup(current, blkio_subsys_id); | 1085 | blkcg = task_blkio_cgroup(current); |
| 1087 | cfqg = cfq_find_alloc_cfqg(cfqd, cgroup, create); | 1086 | cfqg = cfq_find_alloc_cfqg(cfqd, blkcg, create); |
| 1088 | if (!cfqg && create) | 1087 | if (!cfqg && create) |
| 1089 | cfqg = &cfqd->root_group; | 1088 | cfqg = &cfqd->root_group; |
| 1090 | rcu_read_unlock(); | 1089 | rcu_read_unlock(); |
