KEYS: Permit in-place link replacement in keyring list
authorDavid Howells <dhowells@redhat.com>
Fri, 11 May 2012 09:56:56 +0000 (10:56 +0100)
committerDavid Howells <dhowells@redhat.com>
Fri, 11 May 2012 09:56:56 +0000 (10:56 +0100)
commit233e4735f2a45d9e641c2488b8d7afeb1f377dac
treed273536aaea91cf4817dd305450f327ebb37059f
parent65d87fe68abf2fc226a9e96be61160f65d6b4680
KEYS: Permit in-place link replacement in keyring list

Make use of the previous patch that makes the garbage collector perform RCU
synchronisation before destroying defunct keys.  Key pointers can now be
replaced in-place without creating a new keyring payload and replacing the
whole thing as the discarded keys will not be destroyed until all currently
held RCU read locks are released.

If the keyring payload space needs to be expanded or contracted, then a
replacement will still need allocating, and the original will still have to be
freed by RCU.

Signed-off-by: David Howells <dhowells@redhat.com>
include/keys/keyring-type.h
security/keys/gc.c
security/keys/keyring.c