exit.c: unexport __set_special_pids()
Move __set_special_pids() from exit.c to sys.c close to its single caller and make it static. And rename it to set_special_pids(), another helper with this name has gone away. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
3f41854838
commit
81dabb4641
3 changed files with 12 additions and 14 deletions
|
@ -1950,8 +1950,6 @@ extern struct task_struct *find_task_by_vpid(pid_t nr);
|
||||||
extern struct task_struct *find_task_by_pid_ns(pid_t nr,
|
extern struct task_struct *find_task_by_pid_ns(pid_t nr,
|
||||||
struct pid_namespace *ns);
|
struct pid_namespace *ns);
|
||||||
|
|
||||||
extern void __set_special_pids(struct pid *pid);
|
|
||||||
|
|
||||||
/* per-UID process charging. */
|
/* per-UID process charging. */
|
||||||
extern struct user_struct * alloc_uid(kuid_t);
|
extern struct user_struct * alloc_uid(kuid_t);
|
||||||
static inline struct user_struct *get_uid(struct user_struct *u)
|
static inline struct user_struct *get_uid(struct user_struct *u)
|
||||||
|
|
|
@ -312,17 +312,6 @@ kill_orphaned_pgrp(struct task_struct *tsk, struct task_struct *parent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void __set_special_pids(struct pid *pid)
|
|
||||||
{
|
|
||||||
struct task_struct *curr = current->group_leader;
|
|
||||||
|
|
||||||
if (task_session(curr) != pid)
|
|
||||||
change_pid(curr, PIDTYPE_SID, pid);
|
|
||||||
|
|
||||||
if (task_pgrp(curr) != pid)
|
|
||||||
change_pid(curr, PIDTYPE_PGID, pid);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Let kernel threads use this to say that they allow a certain signal.
|
* Let kernel threads use this to say that they allow a certain signal.
|
||||||
* Must not be used if kthread was cloned with CLONE_SIGHAND.
|
* Must not be used if kthread was cloned with CLONE_SIGHAND.
|
||||||
|
|
13
kernel/sys.c
13
kernel/sys.c
|
@ -1309,6 +1309,17 @@ SYSCALL_DEFINE1(getsid, pid_t, pid)
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void set_special_pids(struct pid *pid)
|
||||||
|
{
|
||||||
|
struct task_struct *curr = current->group_leader;
|
||||||
|
|
||||||
|
if (task_session(curr) != pid)
|
||||||
|
change_pid(curr, PIDTYPE_SID, pid);
|
||||||
|
|
||||||
|
if (task_pgrp(curr) != pid)
|
||||||
|
change_pid(curr, PIDTYPE_PGID, pid);
|
||||||
|
}
|
||||||
|
|
||||||
SYSCALL_DEFINE0(setsid)
|
SYSCALL_DEFINE0(setsid)
|
||||||
{
|
{
|
||||||
struct task_struct *group_leader = current->group_leader;
|
struct task_struct *group_leader = current->group_leader;
|
||||||
|
@ -1328,7 +1339,7 @@ SYSCALL_DEFINE0(setsid)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
group_leader->signal->leader = 1;
|
group_leader->signal->leader = 1;
|
||||||
__set_special_pids(sid);
|
set_special_pids(sid);
|
||||||
|
|
||||||
proc_clear_tty(group_leader);
|
proc_clear_tty(group_leader);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue