[AF_RXRPC]: Key facility changes for AF_RXRPC
authorDavid Howells <dhowells@redhat.com>
Thu, 26 Apr 2007 22:46:23 +0000 (15:46 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 26 Apr 2007 22:46:23 +0000 (15:46 -0700)
Export the keyring key type definition and document its availability.

Add alternative types into the key's type_data union to make it more useful.
Not all users necessarily want to use it as a list_head (AF_RXRPC doesn't, for
example), so make it clear that it can be used in other ways.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/keys.txt
include/linux/key.h
security/keys/keyring.c

index 60c665d9cfaa883416c79efb0fb99245f610a1e2..81d9aa09729811e7ca2cec3500e796d8a583c600 100644 (file)
@@ -859,6 +859,18 @@ payload contents" for more information.
        void unregister_key_type(struct key_type *type);
 
 
+Under some circumstances, it may be desirable to desirable to deal with a
+bundle of keys.  The facility provides access to the keyring type for managing
+such a bundle:
+
+       struct key_type key_type_keyring;
+
+This can be used with a function such as request_key() to find a specific
+keyring in a process's keyrings.  A keyring thus found can then be searched
+with keyring_search().  Note that it is not possible to use request_key() to
+search a specific keyring, so using keyrings in this way is of limited utility.
+
+
 ===================================
 NOTES ON ACCESSING PAYLOAD CONTENTS
 ===================================
index 169f05e4863ed140058674a1e5a1fcab5f06f766..a9220e75782ec821a8144a198e8630ef634dbca4 100644 (file)
@@ -160,6 +160,8 @@ struct key {
         */
        union {
                struct list_head        link;
+               unsigned long           x[2];
+               void                    *p[2];
        } type_data;
 
        /* key data
index ad45ce73964b193db630606c2d302dd6414f57c9..88292e3dee966103fff3f4a9e1cba7b5d22fc5c9 100644 (file)
@@ -66,6 +66,8 @@ struct key_type key_type_keyring = {
        .read           = keyring_read,
 };
 
+EXPORT_SYMBOL(key_type_keyring);
+
 /*
  * semaphore to serialise link/link calls to prevent two link calls in parallel
  * introducing a cycle