Commit 8e8ba854 authored by Li Zefan's avatar Li Zefan Committed by David S. Miller

cls_cgroup: clean up for cgroup part

- It's better to use container_of() instead of casting cgroup_subsys_state *
  to cgroup_cls_state *.
- Add helper function task_cls_state().
- Rename net_cls_state() to cgrp_cls_state().
Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2f068bf8
...@@ -24,10 +24,16 @@ struct cgroup_cls_state ...@@ -24,10 +24,16 @@ struct cgroup_cls_state
u32 classid; u32 classid;
}; };
static inline struct cgroup_cls_state *net_cls_state(struct cgroup *cgrp) static inline struct cgroup_cls_state *cgrp_cls_state(struct cgroup *cgrp)
{ {
return (struct cgroup_cls_state *) return container_of(cgroup_subsys_state(cgrp, net_cls_subsys_id),
cgroup_subsys_state(cgrp, net_cls_subsys_id); struct cgroup_cls_state, css);
}
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);
} }
static struct cgroup_subsys_state *cgrp_create(struct cgroup_subsys *ss, static struct cgroup_subsys_state *cgrp_create(struct cgroup_subsys *ss,
...@@ -39,19 +45,19 @@ static struct cgroup_subsys_state *cgrp_create(struct cgroup_subsys *ss, ...@@ -39,19 +45,19 @@ static struct cgroup_subsys_state *cgrp_create(struct cgroup_subsys *ss,
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
if (cgrp->parent) if (cgrp->parent)
cs->classid = net_cls_state(cgrp->parent)->classid; cs->classid = cgrp_cls_state(cgrp->parent)->classid;
return &cs->css; return &cs->css;
} }
static void cgrp_destroy(struct cgroup_subsys *ss, struct cgroup *cgrp) static void cgrp_destroy(struct cgroup_subsys *ss, struct cgroup *cgrp)
{ {
kfree(net_cls_state(cgrp)); kfree(cgrp_cls_state(cgrp));
} }
static u64 read_classid(struct cgroup *cgrp, struct cftype *cft) static u64 read_classid(struct cgroup *cgrp, struct cftype *cft)
{ {
return net_cls_state(cgrp)->classid; return cgrp_cls_state(cgrp)->classid;
} }
static int write_classid(struct cgroup *cgrp, struct cftype *cft, u64 value) static int write_classid(struct cgroup *cgrp, struct cftype *cft, u64 value)
...@@ -59,7 +65,7 @@ static int write_classid(struct cgroup *cgrp, struct cftype *cft, u64 value) ...@@ -59,7 +65,7 @@ static int write_classid(struct cgroup *cgrp, struct cftype *cft, u64 value)
if (!cgroup_lock_live_group(cgrp)) if (!cgroup_lock_live_group(cgrp))
return -ENODEV; return -ENODEV;
net_cls_state(cgrp)->classid = (u32) value; cgrp_cls_state(cgrp)->classid = (u32) value;
cgroup_unlock(); cgroup_unlock();
...@@ -115,8 +121,7 @@ static int cls_cgroup_classify(struct sk_buff *skb, struct tcf_proto *tp, ...@@ -115,8 +121,7 @@ static int cls_cgroup_classify(struct sk_buff *skb, struct tcf_proto *tp,
return -1; return -1;
rcu_read_lock(); rcu_read_lock();
cs = (struct cgroup_cls_state *) task_subsys_state(current, cs = task_cls_state(current);
net_cls_subsys_id);
if (cs->classid && tcf_em_tree_match(skb, &head->ematches, NULL)) { if (cs->classid && tcf_em_tree_match(skb, &head->ematches, NULL)) {
res->classid = cs->classid; res->classid = cs->classid;
res->class = 0; res->class = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment