Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
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
This commit is contained in:
commit
e579dde654
@ -56,7 +56,6 @@ void foo(void)
|
|||||||
DEFINE(IA64_TASK_PENDING_OFFSET,offsetof (struct task_struct, pending));
|
DEFINE(IA64_TASK_PENDING_OFFSET,offsetof (struct task_struct, pending));
|
||||||
DEFINE(IA64_TASK_PID_OFFSET, offsetof (struct task_struct, pid));
|
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_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_SIGNAL_OFFSET,offsetof (struct task_struct, signal));
|
||||||
DEFINE(IA64_TASK_TGID_OFFSET, offsetof (struct task_struct, tgid));
|
DEFINE(IA64_TASK_TGID_OFFSET, offsetof (struct task_struct, tgid));
|
||||||
DEFINE(IA64_TASK_THREAD_KSP_OFFSET, offsetof (struct task_struct, thread.ksp));
|
DEFINE(IA64_TASK_THREAD_KSP_OFFSET, offsetof (struct task_struct, thread.ksp));
|
||||||
@ -64,9 +63,6 @@ void foo(void)
|
|||||||
|
|
||||||
BLANK();
|
BLANK();
|
||||||
|
|
||||||
DEFINE(IA64_SIGHAND_SIGLOCK_OFFSET,offsetof (struct sighand_struct, siglock));
|
|
||||||
|
|
||||||
BLANK();
|
|
||||||
|
|
||||||
DEFINE(IA64_SIGNAL_GROUP_STOP_COUNT_OFFSET,offsetof (struct signal_struct,
|
DEFINE(IA64_SIGNAL_GROUP_STOP_COUNT_OFFSET,offsetof (struct signal_struct,
|
||||||
group_stop_count));
|
group_stop_count));
|
||||||
|
@ -472,6 +472,7 @@ struct proc_dir_entry *proc_create_mount_point(const char *name)
|
|||||||
ent->data = NULL;
|
ent->data = NULL;
|
||||||
ent->proc_fops = NULL;
|
ent->proc_fops = NULL;
|
||||||
ent->proc_iops = NULL;
|
ent->proc_iops = NULL;
|
||||||
|
parent->nlink++;
|
||||||
if (proc_register(parent, ent) < 0) {
|
if (proc_register(parent, ent) < 0) {
|
||||||
kfree(ent);
|
kfree(ent);
|
||||||
parent->nlink--;
|
parent->nlink--;
|
||||||
|
@ -408,10 +408,6 @@ static void next_entry(struct ctl_table_header **phead, struct ctl_table **pentr
|
|||||||
*pentry = entry;
|
*pentry = entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
void register_sysctl_root(struct ctl_table_root *root)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* sysctl_perm does NOT grant the superuser all rights automatically, because
|
* sysctl_perm does NOT grant the superuser all rights automatically, because
|
||||||
* some sysctl variables are readonly even to root.
|
* some sysctl variables are readonly even to root.
|
||||||
|
@ -293,7 +293,6 @@ extern int kill_pid_info_as_cred(int, struct siginfo *, struct pid *,
|
|||||||
const struct cred *, u32);
|
const struct cred *, u32);
|
||||||
extern int kill_pgrp(struct pid *pid, int sig, int priv);
|
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_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 __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 __wake_up_parent(struct task_struct *p, struct task_struct *parent);
|
||||||
extern void force_sig(int, struct task_struct *);
|
extern void force_sig(int, struct task_struct *);
|
||||||
|
@ -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_ignore(sig) siginmask(sig, SIG_KERNEL_IGNORE_MASK)
|
||||||
#define sig_kernel_stop(sig) siginmask(sig, SIG_KERNEL_STOP_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) \
|
#define sig_fatal(t, signr) \
|
||||||
(!siginmask(signr, SIG_KERNEL_IGNORE_MASK|SIG_KERNEL_STOP_MASK) && \
|
(!siginmask(signr, SIG_KERNEL_IGNORE_MASK|SIG_KERNEL_STOP_MASK) && \
|
||||||
(t)->sighand->action[(signr)-1].sa.sa_handler == SIG_DFL)
|
(t)->sighand->action[(signr)-1].sa.sa_handler == SIG_DFL)
|
||||||
|
@ -180,7 +180,6 @@ extern void setup_sysctl_set(struct ctl_table_set *p,
|
|||||||
int (*is_seen)(struct ctl_table_set *));
|
int (*is_seen)(struct ctl_table_set *));
|
||||||
extern void retire_sysctl_set(struct ctl_table_set *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_header *__register_sysctl_table(
|
||||||
struct ctl_table_set *set,
|
struct ctl_table_set *set,
|
||||||
const char *path, struct ctl_table *table);
|
const char *path, struct ctl_table *table);
|
||||||
|
@ -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 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 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)
|
static inline int ipc_buildid(int id, int seq)
|
||||||
{
|
{
|
||||||
return SEQ_MULTIPLIER * seq + id;
|
return SEQ_MULTIPLIER * seq + id;
|
||||||
|
@ -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;
|
int error;
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
|
@ -1396,8 +1396,7 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
|
|||||||
!capable(CAP_SYS_RESOURCE))
|
!capable(CAP_SYS_RESOURCE))
|
||||||
retval = -EPERM;
|
retval = -EPERM;
|
||||||
if (!retval)
|
if (!retval)
|
||||||
retval = security_task_setrlimit(tsk->group_leader,
|
retval = security_task_setrlimit(tsk, resource, new_rlim);
|
||||||
resource, new_rlim);
|
|
||||||
if (resource == RLIMIT_CPU && new_rlim->rlim_cur == 0) {
|
if (resource == RLIMIT_CPU && new_rlim->rlim_cur == 0) {
|
||||||
/*
|
/*
|
||||||
* The caller is asking for an immediate RLIMIT_CPU
|
* The caller is asking for an immediate RLIMIT_CPU
|
||||||
|
@ -1318,7 +1318,7 @@ static int posix_cpu_nsleep(const clockid_t which_clock, int flags,
|
|||||||
*/
|
*/
|
||||||
if (CPUCLOCK_PERTHREAD(which_clock) &&
|
if (CPUCLOCK_PERTHREAD(which_clock) &&
|
||||||
(CPUCLOCK_PID(which_clock) == 0 ||
|
(CPUCLOCK_PID(which_clock) == 0 ||
|
||||||
CPUCLOCK_PID(which_clock) == current->pid))
|
CPUCLOCK_PID(which_clock) == task_pid_vnr(current)))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
error = do_cpu_nanosleep(which_clock, flags, rqtp, &it);
|
error = do_cpu_nanosleep(which_clock, flags, rqtp, &it);
|
||||||
|
@ -106,7 +106,6 @@ __init int net_sysctl_init(void)
|
|||||||
ret = register_pernet_subsys(&sysctl_pernet_ops);
|
ret = register_pernet_subsys(&sysctl_pernet_ops);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto out1;
|
goto out1;
|
||||||
register_sysctl_root(&net_sysctl_root);
|
|
||||||
out:
|
out:
|
||||||
return ret;
|
return ret;
|
||||||
out1:
|
out1:
|
||||||
|
Loading…
Reference in New Issue
Block a user