Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1ec320af authored by Cedric Le Goater's avatar Cedric Le Goater Committed by Linus Torvalds
Browse files

[PATCH] add process_session() helper routine: deprecate old field



Add an anonymous union and ((deprecated)) to catch direct usage of the
session field.

[akpm@osdl.org: fix various missed conversions]
[jdike@addtoit.com: fix UML bug]
Signed-off-by: default avatarJeff Dike <jdike@addtoit.com>
Cc: Cedric Le Goater <clg@fr.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 937949d9
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -3855,7 +3855,7 @@ EXPORT_SYMBOL(proc_clear_tty);
void __proc_set_tty(struct task_struct *tsk, struct tty_struct *tty)
void __proc_set_tty(struct task_struct *tsk, struct tty_struct *tty)
{
{
	if (tty) {
	if (tty) {
		tty->session = tsk->signal->session;
		tty->session = process_session(tsk);
		tty->pgrp = process_group(tsk);
		tty->pgrp = process_group(tsk);
	}
	}
	tsk->signal->tty = tty;
	tsk->signal->tty = tty;
+1 −1
Original line number Original line Diff line number Diff line
@@ -381,7 +381,7 @@ static int do_task_stat(struct task_struct *task, char * buffer, int whole)
			stime = cputime_add(stime, sig->stime);
			stime = cputime_add(stime, sig->stime);
		}
		}


		sid = sig->session;
		sid = signal_session(sig);
		pgid = process_group(task);
		pgid = process_group(task);
		ppid = rcu_dereference(task->real_parent)->tgid;
		ppid = rcu_dereference(task->real_parent)->tgid;


+6 −5
Original line number Original line Diff line number Diff line
@@ -67,7 +67,8 @@
	.cpu_timers	= INIT_CPU_TIMERS(sig.cpu_timers),		\
	.cpu_timers	= INIT_CPU_TIMERS(sig.cpu_timers),		\
	.rlim		= INIT_RLIMITS,					\
	.rlim		= INIT_RLIMITS,					\
	.pgrp		= 1,						\
	.pgrp		= 1,						\
	.session	= 1,						\
	.tty_old_pgrp   = 0,						\
	{ .__session      = 1},						\
}
}


extern struct nsproxy init_nsproxy;
extern struct nsproxy init_nsproxy;
+17 −2
Original line number Original line Diff line number Diff line
@@ -436,7 +436,12 @@ struct signal_struct {
	/* job control IDs */
	/* job control IDs */
	pid_t pgrp;
	pid_t pgrp;
	pid_t tty_old_pgrp;
	pid_t tty_old_pgrp;
	pid_t session;

	union {
		pid_t session __deprecated;
		pid_t __session;
	};

	/* boolean value for session group leader */
	/* boolean value for session group leader */
	int leader;
	int leader;


@@ -1047,9 +1052,19 @@ static inline pid_t process_group(struct task_struct *tsk)
	return tsk->signal->pgrp;
	return tsk->signal->pgrp;
}
}


static inline pid_t signal_session(struct signal_struct *sig)
{
	return sig->__session;
}

static inline pid_t process_session(struct task_struct *tsk)
static inline pid_t process_session(struct task_struct *tsk)
{
{
	return tsk->signal->session;
	return signal_session(tsk->signal);
}

static inline void set_signal_session(struct signal_struct *sig, pid_t session)
{
	sig->__session = session;
}
}


static inline struct pid *task_pid(struct task_struct *task)
static inline struct pid *task_pid(struct task_struct *task)
+1 −1
Original line number Original line Diff line number Diff line
@@ -304,7 +304,7 @@ void __set_special_pids(pid_t session, pid_t pgrp)


	if (process_session(curr) != session) {
	if (process_session(curr) != session) {
		detach_pid(curr, PIDTYPE_SID);
		detach_pid(curr, PIDTYPE_SID);
		curr->signal->session = session;
		set_signal_session(curr->signal, session);
		attach_pid(curr, PIDTYPE_SID, session);
		attach_pid(curr, PIDTYPE_SID, session);
	}
	}
	if (process_group(curr) != pgrp) {
	if (process_group(curr) != pgrp) {
Loading