]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge branch 'for-3.7-hierarchy' into for-next
authorTejun Heo <tj@kernel.org>
Fri, 14 Sep 2012 19:02:35 +0000 (12:02 -0700)
committerTejun Heo <tj@kernel.org>
Fri, 14 Sep 2012 19:02:35 +0000 (12:02 -0700)
1  2 
include/linux/cgroup.h
kernel/cgroup.c
net/core/netprio_cgroup.c
net/sched/cls_cgroup.c

Simple merge
diff --cc kernel/cgroup.c
Simple merge
index 6bc460c38e4fe5b6ce92d6b596d92185a01e2e6b,34f3615b30ca81d49161f902e8bad47bc07770a6..39e7e4d3cdb430e6c35fbe505fdcb32c710159f1
@@@ -326,9 -326,21 +326,19 @@@ struct cgroup_subsys net_prio_subsys = 
        .create         = cgrp_create,
        .destroy        = cgrp_destroy,
        .attach         = net_prio_attach,
 -#ifdef CONFIG_NETPRIO_CGROUP
        .subsys_id      = net_prio_subsys_id,
 -#endif
        .base_cftypes   = ss_files,
-       .module         = THIS_MODULE
+       .module         = THIS_MODULE,
+       /*
+        * net_prio has artificial limit on the number of cgroups and
+        * disallows nesting making it impossible to co-mount it with other
+        * hierarchical subsystems.  Remove the artificially low PRIOIDX_SZ
+        * limit and properly nest configuration such that children follow
+        * their parents' configurations by default and are allowed to
+        * override and remove the following.
+        */
+       .broken_hierarchy = true,
  };
  
  static int netprio_device_event(struct notifier_block *unused,
index 67cf90d962f4319f251f698d0f2d4e94d69a6ff2,907daf99ab2e1b502715305aee89568ad76e63c5..4a23ccca6b708266a7c5eb9ee5381a7a40e4b4b3
@@@ -77,9 -77,20 +77,18 @@@ struct cgroup_subsys net_cls_subsys = 
        .name           = "net_cls",
        .create         = cgrp_create,
        .destroy        = cgrp_destroy,
 -#ifdef CONFIG_NET_CLS_CGROUP
        .subsys_id      = net_cls_subsys_id,
 -#endif
        .base_cftypes   = ss_files,
        .module         = THIS_MODULE,
+       /*
+        * While net_cls cgroup has the rudimentary hierarchy support of
+        * inheriting the parent's classid on cgroup creation, it doesn't
+        * properly propagates config changes in ancestors to their
+        * descendents.  A child should follow the parent's configuration
+        * but be allowed to override it.  Fix it and remove the following.
+        */
+       .broken_hierarchy = true,
  };
  
  struct cls_cgroup_head {