projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
[deliverable/linux.git]
/
kernel
/
sys.c
diff --git
a/kernel/sys.c
b/kernel/sys.c
index 255475d163e0cdb62602306a28134d67005e87c0..ce17760d9c516720af8dcf1522b47da937ba0023 100644
(file)
--- a/
kernel/sys.c
+++ b/
kernel/sys.c
@@
-1110,6
+1110,8
@@
SYSCALL_DEFINE0(setsid)
err = session;
out:
write_unlock_irq(&tasklist_lock);
err = session;
out:
write_unlock_irq(&tasklist_lock);
+ if (err > 0)
+ proc_sid_connector(group_leader);
return err;
}
return err;
}
@@
-1546,24
+1548,37
@@
SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
if (arg4 | arg5)
return -EINVAL;
switch (arg2) {
if (arg4 | arg5)
return -EINVAL;
switch (arg2) {
- case
0
:
+ case
PR_MCE_KILL_CLEAR
:
if (arg3 != 0)
return -EINVAL;
current->flags &= ~PF_MCE_PROCESS;
break;
if (arg3 != 0)
return -EINVAL;
current->flags &= ~PF_MCE_PROCESS;
break;
- case
1
:
+ case
PR_MCE_KILL_SET
:
current->flags |= PF_MCE_PROCESS;
current->flags |= PF_MCE_PROCESS;
- if (arg3
!= 0
)
+ if (arg3
== PR_MCE_KILL_EARLY
)
current->flags |= PF_MCE_EARLY;
current->flags |= PF_MCE_EARLY;
- else
+ else
if (arg3 == PR_MCE_KILL_LATE)
current->flags &= ~PF_MCE_EARLY;
current->flags &= ~PF_MCE_EARLY;
+ else if (arg3 == PR_MCE_KILL_DEFAULT)
+ current->flags &=
+ ~(PF_MCE_EARLY|PF_MCE_PROCESS);
+ else
+ return -EINVAL;
break;
default:
return -EINVAL;
}
error = 0;
break;
break;
default:
return -EINVAL;
}
error = 0;
break;
-
+ case PR_MCE_KILL_GET:
+ if (arg2 | arg3 | arg4 | arg5)
+ return -EINVAL;
+ if (current->flags & PF_MCE_PROCESS)
+ error = (current->flags & PF_MCE_EARLY) ?
+ PR_MCE_KILL_EARLY : PR_MCE_KILL_LATE;
+ else
+ error = PR_MCE_KILL_DEFAULT;
+ break;
default:
error = -EINVAL;
break;
default:
error = -EINVAL;
break;
This page took
0.031162 seconds
and
5
git commands to generate.