Messages in this thread | | | Date | Sat, 26 Feb 2005 09:58:47 -0800 (PST) | From | Linus Torvalds <> | Subject | Re: [PATCH] Properly share process and session keyrings with CLONE_THREAD |
| |
On Sat, 26 Feb 2005, David Howells wrote: > > There's a per-thread keyring available too; and that is strictly per thread.
Ahh, I'd forgotten about that. Yeah, as long as the per-thread thing is still there, I guess I'm ok with it (what I _really_ don't want to lose is the ability to have independent threads - threaded servers using per-request keys etc, and that's my main gripe with the stupid POSIX threading model: it takes away per-thread data).
Can you not do the "thread_group_lock()" thing, though? I hate hiding locks in "helper functions". You search for the lock, and now you've hidden that "siglock" usage away and made it very different from all the other siglock usage. You've also hidden the fact that it accesses "current->signal" (while not hiding it would mean that the code would likely be more cleanly done as
struct sighand *grp = current->sighand;
spin_lock_irq(grp->siglock); .. access group keys .. spin_unlock_irq(grp->siglock);
Also, you have "current->thread_group" in there:
+ key_check(current->thread_group->session_keyring); + key_check(current->thread_group->process_keyring);
which seems to have gotten through only because your key debug stuff is disabled..
Linus
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |