diff options
| author | David Howells <dhowells@redhat.com> | 2005-03-09 16:42:51 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-03-09 16:42:51 -0800 |
| commit | f6480aaa10f6a4bdcf1b52b0d101cda725b8a177 (patch) | |
| tree | a87c7cfacbea086dedc22f00d96c2cd1832d4817 /init | |
| parent | 13ae0ab182f083877990070b8da8f478f89b7615 (diff) | |
[PATCH] Properly share process and session keyrings with CLONE_THREAD [try #2]
The attached patch causes process and session keyrings to be shared
properly when CLONE_THREAD is in force. It does this by moving the keyring
pointers into struct signal_struct[*].
[*] I have a patch to rename this to struct thread_group that I'll revisit
after the advent of 2.6.11.
Furthermore, once this patch is applied, process keyrings will no longer be
allocated at fork, but will instead only be allocated when needed.
Allocating them at fork was a way of half getting around the sharing across
threads problem, but that's no longer necessary.
This revision of the patch has the documentation changes patch rolled into it
and no longer abstracts the locking for signal_struct into a pair of macros.
Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'init')
| -rw-r--r-- | init/main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/init/main.c b/init/main.c index a33735e15d4a..678a332d308a 100644 --- a/init/main.c +++ b/init/main.c @@ -505,6 +505,7 @@ asmlinkage void __init start_kernel(void) proc_caches_init(); buffer_init(); unnamed_dev_init(); + key_init(); security_init(); vfs_caches_init(num_physpages); radix_tree_init(); @@ -582,7 +583,6 @@ static void __init do_basic_setup(void) /* drivers will send hotplug events */ init_workqueues(); usermodehelper_init(); - key_init(); driver_init(); #ifdef CONFIG_SYSCTL |
