[PATCH] KEYS: Make request_key() and co fundamentally asynchronous

Previous thread: [2.6.23-rc4-mm1][Bug] kernel BUG at include/linux/netdevice.h:339! by Kamalesh Babulal on Monday, September 17, 2007 - 5:16 am. (4 messages)

Next thread: Floating point computations in kernel modules by Ram on Monday, September 17, 2007 - 7:06 am. (3 messages)
From: David Howells
Date: Monday, September 17, 2007 - 6:17 am

Make request_key() and co fundamentally asynchronous to make it easier for NFS
to make use of them.  There are now accessor functions that do asynchronous
constructions, a wait function to wait for construction to complete, and a
completion function for the key type to indicate completion of construction.

Note that the construction queue is now gone.  Instead, keys under construction
are linked in to the appropriate keyring in advance, and that anyone
encountering one must wait for it to be complete before they can use it.  This
is done automatically for userspace.

The following auxiliary changes are also made:

 (1) Key type implementation stuff is split from linux/key.h into
     linux/key-type.h.

 (2) AF_RXRPC provides a way to allocate null rxrpc-type keys so that AFS does
     not need to call key_instantiate_and_link() directly.

 (3) Adjust the debugging macros so that they're -Wformat checked even if they
     are disabled, and make it so they can be enabled simply by defining
     __KDEBUG to be consistent with other code of mine.

 (4) Documentation.

Signed-off-by: David Howells <dhowells@redhat.com>
---

 Documentation/keys-request-key.txt |   25 +-
 Documentation/keys.txt             |   91 +++++-
 Documentation/networking/rxrpc.txt |    7 
 fs/afs/cell.c                      |   17 -
 include/keys/rxrpc-type.h          |    2 
 include/linux/key-type.h           |  112 +++++++
 include/linux/key.h                |   99 +-----
 net/rxrpc/af_rxrpc.c               |    1 
 net/rxrpc/ar-key.c                 |   32 ++
 security/keys/internal.h           |   35 +-
 security/keys/key.c                |   34 +-
 security/keys/process_keys.c       |   16 +
 security/keys/request_key.c        |  556 ++++++++++++++++++------------------
 security/keys/request_key_auth.c   |   11 +
 14 files changed, 604 insertions(+), 434 deletions(-)

diff --git a/Documentation/keys-request-key.txt b/Documentation/keys-request-key.txt
index c1f64fd..266955d 100644
--- ...
Previous thread: [2.6.23-rc4-mm1][Bug] kernel BUG at include/linux/netdevice.h:339! by Kamalesh Babulal on Monday, September 17, 2007 - 5:16 am. (4 messages)

Next thread: Floating point computations in kernel modules by Ram on Monday, September 17, 2007 - 7:06 am. (3 messages)