a new optional function for task assignment to cgroup
RFC PATCH 1/1 a new optional function for task assignment to cgroup
From: Kazunaga Ikeno <[email protected]>
This patch provides the function leads a task, corresponding to specified user-id, to a specific cgroup directory.
Signed-off-by Kazunaga Ikeno <[email protected]>
kernel/sys.c +13 -0
@@ -33,6 +33,7 @@#include <linux/task_io_accounting_ops.h> #include <linux/seccomp.h> #include <linux/cpu.h> +#include <linux/cgroup.h> #include <linux/compat.h> #include <linux/syscalls.h>
@@ -644,6 +645,10 @@ asmlinkage long sys_setreuid(uid_t ruid,key_fsuid_changed (current);proc_id_connector (current,PROC_EVENT_UID ); + retval =cgroup_attach_by_uid (current); +if (retval) +return retval; +return security_task_post_setuid (old_ruid, old_euid, old_suid,LSM_SETID_RE ); }
@@ -691,6 +696,10 @@ asmlinkage long sys_setuid(uid_t uid)key_fsuid_changed (current);proc_id_connector (current,PROC_EVENT_UID ); + retval =cgroup_attach_by_uid (current); +if (retval) +return retval; +return security_task_post_setuid (old_ruid, old_euid, old_suid,LSM_SETID_ID ); }
@@ -739,6 +748,10 @@ asmlinkage long sys_setresuid(uid_t ruidkey_fsuid_changed (current);proc_id_connector (current,PROC_EVENT_UID ); + retval =cgroup_attach_by_uid (current); +if (retval) +return retval; +return security_task_post_setuid (old_ruid, old_euid, old_suid,LSM_SETID_RES ); }
include/linux/cgroup.h +2 -0
@@ -30,6 +30,7 @@ extern void cgroup_unlock(void);extern void cgroup_fork (struct task_struct *p);extern void cgroup_fork_callbacks (struct task_struct *p);extern void cgroup_post_fork (struct task_struct *p); +extern int cgroup_attach_by_uid (struct task_struct *p);extern void cgroup_exit (struct task_struct *p,int run_callbacks);extern int cgroupstats_build (struct cgroupstats *stats,struct dentry *dentry);
@@ -356,6 +357,7 @@ static inline void cgroup_init_smp(void)static inline void cgroup_fork (struct task_struct *p) {}static inline void cgroup_fork_callbacks (struct task_struct *p) {}static inline void cgroup_post_fork (struct task_struct *p) {} +static inline int cgroup_attach_by_uid (struct task_struct *p) {}static inline void cgroup_exit (struct task_struct *p,int callbacks) {}static inline void cgroup_lock (void ) {}
kernel/cgroup.c +192 -0
240 lines not on this page · raw message
--
-