OSDN Git Service

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 5 May 2017 18:08:43 +0000 (11:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 5 May 2017 18:08:43 +0000 (11:08 -0700)
Pull namespace updates from Eric Biederman:
 "This is a set of small fixes that were mostly stumbled over during
  more significant development. This proc fix and the fix to
  posix-timers are the most significant of the lot.

  There is a lot of good development going on but unfortunately it
  didn't quite make the merge window"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
  proc: Fix unbalanced hard link numbers
  signal: Make kill_proc_info static
  rlimit: Properly call security_task_setrlimit
  signal: Remove unused definition of sig_user_definied
  ia64: Remove unused IA64_TASK_SIGHAND_OFFSET and IA64_SIGHAND_SIGLOCK_OFFSET
  ipc: Remove unused declaration of recompute_msgmni
  posix-timers: Correct sanity check in posix_cpu_nsleep
  sysctl: Remove dead register_sysctl_root

arch/ia64/kernel/asm-offsets.c
fs/proc/generic.c
fs/proc/proc_sysctl.c
include/linux/sched/signal.h
include/linux/signal.h
include/linux/sysctl.h
ipc/util.h
kernel/signal.c
kernel/sys.c
kernel/time/posix-cpu-timers.c
net/sysctl_net.c

index 8786c8b..798bdb2 100644 (file)
@@ -56,7 +56,6 @@ void foo(void)
        DEFINE(IA64_TASK_PENDING_OFFSET,offsetof (struct task_struct, pending));
        DEFINE(IA64_TASK_PID_OFFSET, offsetof (struct task_struct, pid));
        DEFINE(IA64_TASK_REAL_PARENT_OFFSET, offsetof (struct task_struct, real_parent));
-       DEFINE(IA64_TASK_SIGHAND_OFFSET,offsetof (struct task_struct, sighand));
        DEFINE(IA64_TASK_SIGNAL_OFFSET,offsetof (struct task_struct, signal));
        DEFINE(IA64_TASK_TGID_OFFSET, offsetof (struct task_struct, tgid));
        DEFINE(IA64_TASK_THREAD_KSP_OFFSET, offsetof (struct task_struct, thread.ksp));
@@ -64,9 +63,6 @@ void foo(void)
 
        BLANK();
 
-       DEFINE(IA64_SIGHAND_SIGLOCK_OFFSET,offsetof (struct sighand_struct, siglock));
-
-       BLANK();
 
        DEFINE(IA64_SIGNAL_GROUP_STOP_COUNT_OFFSET,offsetof (struct signal_struct,
                                                             group_stop_count));
index ee27feb..9425c0d 100644 (file)
@@ -472,6 +472,7 @@ struct proc_dir_entry *proc_create_mount_point(const char *name)
                ent->data = NULL;
                ent->proc_fops = NULL;
                ent->proc_iops = NULL;
+               parent->nlink++;
                if (proc_register(parent, ent) < 0) {
                        kfree(ent);
                        parent->nlink--;
index d04ea43..67985a7 100644 (file)
@@ -408,10 +408,6 @@ static void next_entry(struct ctl_table_header **phead, struct ctl_table **pentr
        *pentry = entry;
 }
 
-void register_sysctl_root(struct ctl_table_root *root)
-{
-}
-
 /*
  * sysctl_perm does NOT grant the superuser all rights automatically, because
  * some sysctl variables are readonly even to root.
index 2cf4467..c06d63b 100644 (file)
@@ -293,7 +293,6 @@ extern int kill_pid_info_as_cred(int, struct siginfo *, struct pid *,
                                const struct cred *, u32);
 extern int kill_pgrp(struct pid *pid, int sig, int priv);
 extern int kill_pid(struct pid *pid, int sig, int priv);
-extern int kill_proc_info(int, struct siginfo *, pid_t);
 extern __must_check bool do_notify_parent(struct task_struct *, int);
 extern void __wake_up_parent(struct task_struct *p, struct task_struct *parent);
 extern void force_sig(int, struct task_struct *);
index 94ad6ee..1f5a166 100644 (file)
@@ -390,10 +390,6 @@ int unhandled_signal(struct task_struct *tsk, int sig);
 #define sig_kernel_ignore(sig)         siginmask(sig, SIG_KERNEL_IGNORE_MASK)
 #define sig_kernel_stop(sig)           siginmask(sig, SIG_KERNEL_STOP_MASK)
 
-#define sig_user_defined(t, signr) \
-       (((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_DFL) &&  \
-        ((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_IGN))
-
 #define sig_fatal(t, signr) \
        (!siginmask(signr, SIG_KERNEL_IGNORE_MASK|SIG_KERNEL_STOP_MASK) && \
         (t)->sighand->action[(signr)-1].sa.sa_handler == SIG_DFL)
index b7e8204..80d0781 100644 (file)
@@ -180,7 +180,6 @@ extern void setup_sysctl_set(struct ctl_table_set *p,
        int (*is_seen)(struct ctl_table_set *));
 extern void retire_sysctl_set(struct ctl_table_set *set);
 
-void register_sysctl_root(struct ctl_table_root *root);
 struct ctl_table_header *__register_sysctl_table(
        struct ctl_table_set *set,
        const char *path, struct ctl_table *table);
index 51f7ca5..60ddccc 100644 (file)
@@ -153,8 +153,6 @@ extern struct msg_msg *load_msg(const void __user *src, size_t len);
 extern struct msg_msg *copy_msg(struct msg_msg *src, struct msg_msg *dst);
 extern int store_msg(void __user *dest, struct msg_msg *msg, size_t len);
 
-extern void recompute_msgmni(struct ipc_namespace *);
-
 static inline int ipc_buildid(int id, int seq)
 {
        return SEQ_MULTIPLIER * seq + id;
index 7e59ebc..a8c54f3 100644 (file)
@@ -1318,7 +1318,7 @@ int kill_pid_info(int sig, struct siginfo *info, struct pid *pid)
        }
 }
 
-int kill_proc_info(int sig, struct siginfo *info, pid_t pid)
+static int kill_proc_info(int sig, struct siginfo *info, pid_t pid)
 {
        int error;
        rcu_read_lock();
index 196c713..8a94b4e 100644 (file)
@@ -1396,8 +1396,7 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
                                !capable(CAP_SYS_RESOURCE))
                        retval = -EPERM;
                if (!retval)
-                       retval = security_task_setrlimit(tsk->group_leader,
-                                       resource, new_rlim);
+                       retval = security_task_setrlimit(tsk, resource, new_rlim);
                if (resource == RLIMIT_CPU && new_rlim->rlim_cur == 0) {
                        /*
                         * The caller is asking for an immediate RLIMIT_CPU
index 949e434..1370f06 100644 (file)
@@ -1318,7 +1318,7 @@ static int posix_cpu_nsleep(const clockid_t which_clock, int flags,
         */
        if (CPUCLOCK_PERTHREAD(which_clock) &&
            (CPUCLOCK_PID(which_clock) == 0 ||
-            CPUCLOCK_PID(which_clock) == current->pid))
+            CPUCLOCK_PID(which_clock) == task_pid_vnr(current)))
                return -EINVAL;
 
        error = do_cpu_nanosleep(which_clock, flags, rqtp, &it);
index 9199813..9aed6fe 100644 (file)
@@ -106,7 +106,6 @@ __init int net_sysctl_init(void)
        ret = register_pernet_subsys(&sysctl_pernet_ops);
        if (ret)
                goto out1;
-       register_sysctl_root(&net_sysctl_root);
 out:
        return ret;
 out1: