diff options
| author | Peter Hurley <peter@hurleysoftware.com> | 2014-10-16 14:59:48 -0400 | 
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-11-05 16:26:14 -0800 | 
| commit | e1c2296c3485158304bfad5a80e89078463d70c8 (patch) | |
| tree | 98103d2003b9b478c60b8a546e4917880e2150e3 /drivers/tty/tty_io.c | |
| parent | 2c411c11020ff356748268ca9cae4c1b4c410f00 (diff) | |
tty: Move session_of_pgrp() and make static
tiocspgrp() is the lone caller of session_of_pgrp(); relocate and
limit to file scope.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
Reviewed-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/tty_io.c')
| -rw-r--r-- | drivers/tty/tty_io.c | 21 | 
1 files changed, 21 insertions, 0 deletions
| diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index 114854c5554b..ae8f53c7972d 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -2515,6 +2515,27 @@ struct pid *tty_get_pgrp(struct tty_struct *tty)  }  EXPORT_SYMBOL_GPL(tty_get_pgrp); +/* + * This checks not only the pgrp, but falls back on the pid if no + * satisfactory pgrp is found. I dunno - gdb doesn't work correctly + * without this... + * + * The caller must hold rcu lock or the tasklist lock. + */ +static struct pid *session_of_pgrp(struct pid *pgrp) +{ +	struct task_struct *p; +	struct pid *sid = NULL; + +	p = pid_task(pgrp, PIDTYPE_PGID); +	if (p == NULL) +		p = pid_task(pgrp, PIDTYPE_PID); +	if (p != NULL) +		sid = task_session(p); + +	return sid; +} +  /**   *	tiocgpgrp		-	get process group   *	@tty: tty passed by user | 
