lkml.org 
[lkml]   [2008]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC][PATCH 3/6][v3] Define/set SIGNAL_UNKILLABLE_FROM_NS

    From: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    Date: Sat, 20 Dec 2008 12:27:47 -0800
    Subject: [RFC][PATCH 3/6][v3] Define/set SIGNAL_UNKILLABLE_FROM_NS

    Define and set the SIGNAL_UNKILLABLE_FROM_NS flags for container-inits.
    This flag will be used in follow-on patches to ignore/drop fatal sigals
    to container-init from within the container but process the signals from
    an ancestor container.

    Based on discussions on earlier version of this patchset:
    http://lkml.org/lkml/2008/11/25/462

    Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    ---
    include/linux/sched.h | 3 +++
    kernel/fork.c | 2 ++
    2 files changed, 5 insertions(+), 0 deletions(-)

    diff --git a/include/linux/sched.h b/include/linux/sched.h
    index 96c6703..19c4311 100644
    --- a/include/linux/sched.h
    +++ b/include/linux/sched.h
    @@ -604,6 +604,9 @@ struct signal_struct {

    #define SIGNAL_UNKILLABLE 0x00000040 /* for init: ignore fatal signals */

    +/* for container-init: ignore fatal signals from within container */
    +#define SIGNAL_UNKILLABLE_FROM_NS 0x00000080
    +
    /* If true, all threads except ->group_exit_task have pending SIGKILL */
    static inline int signal_group_exit(const struct signal_struct *sig)
    {
    diff --git a/kernel/fork.c b/kernel/fork.c
    index dba2d3f..0a959f5 100644
    --- a/kernel/fork.c
    +++ b/kernel/fork.c
    @@ -812,6 +812,8 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
    atomic_set(&sig->live, 1);
    init_waitqueue_head(&sig->wait_chldexit);
    sig->flags = 0;
    + if (clone_flags & CLONE_NEWPID)
    + sig->flags |= SIGNAL_UNKILLABLE_FROM_NS;
    sig->group_exit_code = 0;
    sig->group_exit_task = NULL;
    sig->group_stop_count = 0;
    --
    1.5.2.5


    \
     
     \ /
      Last update: 2008-12-21 01:57    [W:0.022 / U:1.748 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site