diff options
| author | Jens Axboe <jens.axboe@oracle.com> | 2010-05-21 15:27:26 -0400 |
|---|---|---|
| committer | Jens Axboe <jens.axboe@oracle.com> | 2010-05-21 15:27:26 -0400 |
| commit | ee9a3607fb03e804ddf624544105f4e34260c380 (patch) | |
| tree | ce41b6e0fa10982a306f6c142a92dbf3c9961284 /block | |
| parent | b492e95be0ae672922f4734acf3f5d35c30be948 (diff) | |
| parent | d515e86e639890b33a09390d062b0831664f04a2 (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.c | 8 | ||||
| -rw-r--r-- | block/cfq-iosched.c | 2 |
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) | |||
| 956 | static struct cgroup_subsys_state * | 956 | static struct cgroup_subsys_state * |
| 957 | blkiocg_create(struct cgroup_subsys *subsys, struct cgroup *cgroup) | 957 | blkiocg_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 |
