From: David Howells <dhowells@redhat.com>

I've updated the patch to be against 2.6.11-mm2; and removed the extraneous
preempt disablement from __key_link().

Signed-Off-By: David Howells <dhowells@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/security/keys/keyring.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff -puN security/keys/keyring.c~keys-discard-key-spinlock-and-use-rcu-for-key-payload-try-4 security/keys/keyring.c
--- 25/security/keys/keyring.c~keys-discard-key-spinlock-and-use-rcu-for-key-payload-try-4	Thu Mar 10 16:16:00 2005
+++ 25-akpm/security/keys/keyring.c	Thu Mar 10 16:16:00 2005
@@ -710,7 +710,6 @@ int __key_link(struct key *keyring, stru
 	if (ret < 0)
 		goto error2;
 
-	preempt_disable();
 	klist = keyring->payload.subscriptions;
 
 	if (klist && klist->nkeys < klist->maxkeys) {
@@ -718,15 +717,13 @@ int __key_link(struct key *keyring, stru
 		atomic_inc(&key->usage);
 
 		klist->keys[klist->nkeys] = key;
-		wmb();
+		smp_wmb();
 		klist->nkeys++;
-		preempt_enable();
+		smp_wmb();
 
 		ret = 0;
 	}
 	else {
-		preempt_enable();
-
 		/* grow the key list */
 		max = 4;
 		if (klist)
_