summaryrefslogtreecommitdiffstats
path: root/security/keys/keyring.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2011-08-22 15:08:51 +0200
committerJames Morris <jmorris@namei.org>2011-08-23 01:57:34 +0200
commit6d528b082294f0ddabd6368297546a2c0b67d4fe (patch)
tree268bf5dbd454c689947c51867bf5b77e21c97eae /security/keys/keyring.c
parentKEYS: keyctl_get_keyring_ID() should create a session keyring if create flag set (diff)
downloadlinux-6d528b082294f0ddabd6368297546a2c0b67d4fe.tar.xz
linux-6d528b082294f0ddabd6368297546a2c0b67d4fe.zip
KEYS: __key_link() should use the RCU deref wrapper for keyring payloads
__key_link() should use the RCU deref wrapper rcu_dereference_locked_keyring() for accessing keyring payloads rather than calling rcu_dereference_protected() directly. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'security/keys/keyring.c')
-rw-r--r--security/keys/keyring.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/security/keys/keyring.c b/security/keys/keyring.c
index 30e242f7bd0e..37a7f3b28852 100644
--- a/security/keys/keyring.c
+++ b/security/keys/keyring.c
@@ -860,8 +860,7 @@ void __key_link(struct key *keyring, struct key *key,
kenter("%d,%d,%p", keyring->serial, key->serial, nklist);
- klist = rcu_dereference_protected(keyring->payload.subscriptions,
- rwsem_is_locked(&keyring->sem));
+ klist = rcu_dereference_locked_keyring(keyring);
atomic_inc(&key->usage);