lkml.org 
[lkml]   [2005]   [Dec]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[RFC][patch 04/21] PID Virtualization: return virtual process group ids
    In this patch we now identify where in the kernel code conceptually
    a virtual process group needs to be returned to userspace. This is
    simply the extension of the previous patch which only dealt with
    identify the location of virtual pid/tgid/ppids returns.

    As in that patch, these locations are at the kernel/user interfaces.
    and broadly they fall into 3 categories:
    (a) syscall return parameter,
    (b) syscall return code,
    (c) through a datastructure filled in a syscall

    Signed-off-by: Hubertus Franke <frankeh@watson.ibm.com>
    --

    fs/binfmt_elf.c | 4 ++--
    fs/proc/array.c | 2 +-
    kernel/sys.c | 8 ++++----
    3 files changed, 7 insertions(+), 7 deletions(-)

    Index: linux-2.6.15-rc1/fs/binfmt_elf.c
    ===================================================================
    --- linux-2.6.15-rc1.orig/fs/binfmt_elf.c 2005-11-30 18:08:02.000000000 -0500
    +++ linux-2.6.15-rc1/fs/binfmt_elf.c 2005-11-30 18:08:03.000000000 -0500
    @@ -1272,7 +1272,7 @@ static void fill_prstatus(struct elf_prs
    prstatus->pr_sighold = p->blocked.sig[0];
    prstatus->pr_pid = task_vpid(p);
    prstatus->pr_ppid = task_vppid(p);
    - prstatus->pr_pgrp = process_group(p);
    + prstatus->pr_pgrp = virt_process_group(p);
    prstatus->pr_sid = p->signal->session;
    if (thread_group_leader(p)) {
    /*
    @@ -1318,7 +1318,7 @@ static int fill_psinfo(struct elf_prpsin

    psinfo->pr_pid = task_vpid(p);
    psinfo->pr_ppid = task_vppid(p);
    - psinfo->pr_pgrp = process_group(p);
    + psinfo->pr_pgrp = virt_process_group(p);
    psinfo->pr_sid = p->signal->session;

    i = p->state ? ffz(~p->state) + 1 : 0;
    Index: linux-2.6.15-rc1/fs/proc/array.c
    ===================================================================
    --- linux-2.6.15-rc1.orig/fs/proc/array.c 2005-11-30 18:08:02.000000000 -0500
    +++ linux-2.6.15-rc1/fs/proc/array.c 2005-11-30 18:08:03.000000000 -0500
    @@ -374,7 +374,7 @@ static int do_task_stat(struct task_stru
    tty_pgrp = task->signal->tty->pgrp;
    tty_nr = new_encode_dev(tty_devnum(task->signal->tty));
    }
    - pgid = process_group(task);
    + pgid = virt_process_group(task);
    sid = task->signal->session;
    cmin_flt = task->signal->cmin_flt;
    cmaj_flt = task->signal->cmaj_flt;
    Index: linux-2.6.15-rc1/kernel/sys.c
    ===================================================================
    --- linux-2.6.15-rc1.orig/kernel/sys.c 2005-11-30 18:07:18.000000000 -0500
    +++ linux-2.6.15-rc1/kernel/sys.c 2005-11-30 18:08:03.000000000 -0500
    @@ -1154,7 +1154,7 @@ out:
    asmlinkage long sys_getpgid(pid_t pid)
    {
    if (!pid) {
    - return process_group(current);
    + return virt_process_group(current);
    } else {
    int retval;
    struct task_struct *p;
    @@ -1166,7 +1166,7 @@ asmlinkage long sys_getpgid(pid_t pid)
    if (p) {
    retval = security_task_getpgid(p);
    if (!retval)
    - retval = process_group(p);
    + retval = virt_process_group(p);
    }
    read_unlock(&tasklist_lock);
    return retval;
    @@ -1178,7 +1178,7 @@ asmlinkage long sys_getpgid(pid_t pid)
    asmlinkage long sys_getpgrp(void)
    {
    /* SMP - assuming writes are word atomic this is fine */
    - return process_group(current);
    + return virt_process_group(current);
    }

    #endif
    @@ -1224,7 +1224,7 @@ asmlinkage long sys_setsid(void)
    __set_special_pids(task_pid(current), task_pid(current));
    current->signal->tty = NULL;
    current->signal->tty_old_pgrp = 0;
    - err = process_group(current);
    + err = virt_process_group(current);
    out:
    write_unlock_irq(&tasklist_lock);
    up(&tty_sem);
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-12-15 15:41    [W:0.022 / U:0.256 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site