cgroup: add/update accessors which obtain subsys specific data from css
[deliverable/linux.git] / net / sched / cls_cgroup.c
index 6db7855b9029ee26dcd97d73c43862a93c35b6c4..af412ab2b477777f9348cc51c839681f72a42c24 100644 (file)
 #include <net/sock.h>
 #include <net/cls_cgroup.h>
 
+static inline struct cgroup_cls_state *css_cls_state(struct cgroup_subsys_state *css)
+{
+       return css ? container_of(css, struct cgroup_cls_state, css) : NULL;
+}
+
 static inline struct cgroup_cls_state *cgrp_cls_state(struct cgroup *cgrp)
 {
-       return container_of(cgroup_subsys_state(cgrp, net_cls_subsys_id),
-                           struct cgroup_cls_state, css);
+       return css_cls_state(cgroup_css(cgrp, net_cls_subsys_id));
 }
 
 static inline struct cgroup_cls_state *task_cls_state(struct task_struct *p)
 {
-       return container_of(task_subsys_state(p, net_cls_subsys_id),
-                           struct cgroup_cls_state, css);
+       return css_cls_state(task_css(p, net_cls_subsys_id));
 }
 
 static struct cgroup_subsys_state *cgrp_css_alloc(struct cgroup *cgrp)
@@ -178,7 +181,7 @@ static const struct nla_policy cgroup_policy[TCA_CGROUP_MAX + 1] = {
        [TCA_CGROUP_EMATCHES]   = { .type = NLA_NESTED },
 };
 
-static int cls_cgroup_change(struct sk_buff *in_skb,
+static int cls_cgroup_change(struct net *net, struct sk_buff *in_skb,
                             struct tcf_proto *tp, unsigned long base,
                             u32 handle, struct nlattr **tca,
                             unsigned long *arg)
@@ -215,7 +218,8 @@ static int cls_cgroup_change(struct sk_buff *in_skb,
        if (err < 0)
                return err;
 
-       err = tcf_exts_validate(tp, tb, tca[TCA_RATE], &e, &cgroup_ext_map);
+       err = tcf_exts_validate(net, tp, tb, tca[TCA_RATE], &e,
+                               &cgroup_ext_map);
        if (err < 0)
                return err;
 
This page took 0.092745 seconds and 5 git commands to generate.