aboutsummaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2010-05-21 15:27:26 -0400
committerJens Axboe <jens.axboe@oracle.com>2010-05-21 15:27:26 -0400
commitee9a3607fb03e804ddf624544105f4e34260c380 (patch)
treece41b6e0fa10982a306f6c142a92dbf3c9961284 /block
parentb492e95be0ae672922f4734acf3f5d35c30be948 (diff)
parentd515e86e639890b33a09390d062b0831664f04a2 (diff)
Merge branch 'master' into for-2.6.35
Conflicts: fs/ext3/fsync.c Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block')
-rw-r--r--block/blk-cgroup.c8
-rw-r--r--block/cfq-iosched.c2
2 files changed, 6 insertions, 4 deletions
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 60bb049b6106..a6809645d212 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -956,16 +956,16 @@ static void blkiocg_destroy(struct cgroup_subsys *subsys, struct cgroup *cgroup)
956static struct cgroup_subsys_state * 956static struct cgroup_subsys_state *
957blkiocg_create(struct cgroup_subsys *subsys, struct cgroup *cgroup) 957blkiocg_create(struct cgroup_subsys *subsys, struct cgroup *cgroup)
958{ 958{
959 struct blkio_cgroup *blkcg, *parent_blkcg; 959 struct blkio_cgroup *blkcg;
960 struct cgroup *parent = cgroup->parent;
960 961
961 if (!cgroup->parent) { 962 if (!parent) {
962 blkcg = &blkio_root_cgroup; 963 blkcg = &blkio_root_cgroup;
963 goto done; 964 goto done;
964 } 965 }
965 966
966 /* Currently we do not support hierarchy deeper than two level (0,1) */ 967 /* Currently we do not support hierarchy deeper than two level (0,1) */
967 parent_blkcg = cgroup_to_blkio_cgroup(cgroup->parent); 968 if (parent != cgroup->top_cgroup)
968 if (css_depth(&parent_blkcg->css) > 0)
969 return ERR_PTR(-EINVAL); 969 return ERR_PTR(-EINVAL);
970 970
971 blkcg = kzalloc(sizeof(*blkcg), GFP_KERNEL); 971 blkcg = kzalloc(sizeof(*blkcg), GFP_KERNEL);
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index b1472bc2d49c..ed897b5ef315 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -3741,8 +3741,10 @@ static void *cfq_init_queue(struct request_queue *q)
3741 * to make sure that cfq_put_cfqg() does not try to kfree root group 3741 * to make sure that cfq_put_cfqg() does not try to kfree root group
3742 */ 3742 */
3743 atomic_set(&cfqg->ref, 1); 3743 atomic_set(&cfqg->ref, 1);
3744 rcu_read_lock();
3744 blkiocg_add_blkio_group(&blkio_root_cgroup, &cfqg->blkg, (void *)cfqd, 3745 blkiocg_add_blkio_group(&blkio_root_cgroup, &cfqg->blkg, (void *)cfqd,
3745 0); 3746 0);
3747 rcu_read_unlock();
3746#endif 3748#endif
3747 /* 3749 /*
3748 * Not strictly needed (since RB_ROOT just clears the node and we 3750 * Not strictly needed (since RB_ROOT just clears the node and we