Re: [PATCH 2/3] netcls_cgroup: introduce cgroup_cls_state->is_local

From: Daniel Wagner
Date: Mon Nov 19 2012 - 07:54:16 EST


Hi Tejun,

On 17.11.2012 04:31, Tejun Heo wrote:
-static int write_classid(struct cgroup *cgrp, struct cftype *cft, u64 value)
+static int write_classid(struct cgroup *cgrp, struct cftype *cft,
+ const char *buf)
{
+ struct cgroup_cls_state *cs = cgrp_cls_state(cgrp);
+ s64 v;
+
+ if (sscanf(buf, "%lld", &v) != 1)
+ return -EINVAL;
+

This changes the user API slightly. cgroup_write_u64() uses simple_stroull() to parse the string. simple_stroull() allows to use either 0x1234 or 1234 as input. sscanf() will only handle the later type of input.

I noticed this because my test script stopped working:

mkdir /sys/fs/cgroup/net_cls/a
echo 0x100002 > /sys/fs/cgroup/net_cls/a/net_cls.classid # 10:2

tc qdisc add dev $DEV root handle 10: htb
tc class add dev $DEV parent 10: classid 10:2 htb rate 1mbit
tc qdisc add dev $DEV parent 10:2 handle 20: sfq perturb 10

I am not completely sure if my setup is 100% correct, but at least
it seems to make something :)

cheers,
daniel

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/