• Tejun Heo's avatar
    cgroup: separate out cgroup_procs_write_permission() from __cgroup_procs_write() · dedf22e9
    Tejun Heo authored
    Separate out task / process migration permission check from
    __cgroup_procs_write() into cgroup_procs_write_permission().
    
    * Permission check is moved right above the actual migration and no
      longer performed while holding rcu_read_lock().
      cgroup_procs_write_permission() uses get_task_cred() / put_cred()
      instead of __task_cred().  Also, !root trying to migrate kthreadd or
      PF_NO_SETAFFINITY tasks will now fail with -EINVAL rather than
      -EACCES which should be fine.
    
    * The same permission check is now performed even when moving self by
      specifying 0 as pid.  This always succeeds so there's no functional
      difference.  We'll add more permission checks later and the benefits
      of keeping both cases consistent outweigh the minute overhead of
      doing perm checks on pid 0 case.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    dedf22e9
cgroup.c 150 KB