Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+14 −9
Original line number Diff line number Diff line
@@ -24,10 +24,16 @@ struct cgroup_cls_state
	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 *)
		cgroup_subsys_state(cgrp, net_cls_subsys_id);
	return container_of(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,
@@ -39,19 +45,19 @@ static struct cgroup_subsys_state *cgrp_create(struct cgroup_subsys *ss,
		return ERR_PTR(-ENOMEM);

	if (cgrp->parent)
		cs->classid = net_cls_state(cgrp->parent)->classid;
		cs->classid = cgrp_cls_state(cgrp->parent)->classid;

	return &cs->css;
}

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)
{
	return net_cls_state(cgrp)->classid;
	return cgrp_cls_state(cgrp)->classid;
}

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))
		return -ENODEV;

	net_cls_state(cgrp)->classid = (u32) value;
	cgrp_cls_state(cgrp)->classid = (u32) value;

	cgroup_unlock();

@@ -115,8 +121,7 @@ static int cls_cgroup_classify(struct sk_buff *skb, struct tcf_proto *tp,
		return -1;

	rcu_read_lock();
	cs = (struct cgroup_cls_state *) task_subsys_state(current,
							   net_cls_subsys_id);
	cs = task_cls_state(current);
	if (cs->classid && tcf_em_tree_match(skb, &head->ematches, NULL)) {
		res->classid = cs->classid;
		res->class = 0;