Cgroups: add the trigger callback to struct cftype
PATCH 1/3 Cgroups: add the trigger callback to struct cftype
Trigger callback can be used to receive a kick-up from the user space. The string written is ignored.
The cftype->private is used for multiplexing events.
Signed-off-by Pavel Emelyanov <[email protected]>
Acked-by Paul Menage <[email protected]>
--- include/linux/cgroup.h | 8 ++++++++ kernel/cgroup.c | 4 ++++ 2 files changed, 12 insertions(+), 0 deletions(-)
include/linux/cgroup.h +8 -0
@@ -243,6 +243,14 @@ struct cftype {*/ int (*write_s64) (struct cgroup *cgrp,struct cftype *cft,s64 val); +/* +* trigger() callback can be used to get some kick from the +* userspace, when the actual string written is not important +* at all. The private field can be used to determine the +* kick type for multiplexing. +*/ +int (*trigger)(struct cgroup *cgrp,unsigned int event); +int (*release) (struct inode *inode,struct file *file); };
kernel/cgroup.c +4 -0
@@ -1410,6 +1410,10 @@ static ssize_t cgroup_file_write(struct file *file, const char __user *buf,return cft->write (cgrp, cft, file, buf, nbytes, ppos);if (cft->write_u64 || cft->write_s64)return cgroup_write_X64 (cgrp, cft, file, buf, nbytes, ppos); +if (cft->trigger) { +int ret = cft->trigger (cgrp, (unsigned int )cft->private); +return ret ? ret : nbytes; + }return -EINVAL ; }
Signature · 1 line
1.5.3.4