diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-03-12 16:21:07 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2008-03-14 13:42:41 -0400 |
commit | 5c691044ecbca04dd558fca4c754121689fe1b34 (patch) | |
tree | 7a56b63c44766fcca0d7ac245ce0e19077b6f118 /net/sunrpc/auth.c | |
parent | 9a559efd4199c9812d339e23cc1b6055366b224f (diff) |
SUNRPC: Add an rpc_credop callback for binding a credential to an rpc_task
We need the ability to treat 'generic' creds specially, since they want to
bind instances of the auth cred instead of binding themselves.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/auth.c')
-rw-r--r-- | net/sunrpc/auth.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c index 012f2a320638..d65dd7940102 100644 --- a/net/sunrpc/auth.c +++ b/net/sunrpc/auth.c | |||
@@ -375,13 +375,14 @@ rpcauth_init_cred(struct rpc_cred *cred, const struct auth_cred *acred, | |||
375 | } | 375 | } |
376 | EXPORT_SYMBOL_GPL(rpcauth_init_cred); | 376 | EXPORT_SYMBOL_GPL(rpcauth_init_cred); |
377 | 377 | ||
378 | static void | 378 | void |
379 | rpcauth_generic_bind_cred(struct rpc_task *task, struct rpc_cred *cred) | 379 | rpcauth_generic_bind_cred(struct rpc_task *task, struct rpc_cred *cred) |
380 | { | 380 | { |
381 | task->tk_msg.rpc_cred = get_rpccred(cred); | 381 | task->tk_msg.rpc_cred = get_rpccred(cred); |
382 | dprintk("RPC: %5u holding %s cred %p\n", task->tk_pid, | 382 | dprintk("RPC: %5u holding %s cred %p\n", task->tk_pid, |
383 | cred->cr_auth->au_ops->au_name, cred); | 383 | cred->cr_auth->au_ops->au_name, cred); |
384 | } | 384 | } |
385 | EXPORT_SYMBOL_GPL(rpcauth_generic_bind_cred); | ||
385 | 386 | ||
386 | static void | 387 | static void |
387 | rpcauth_bind_root_cred(struct rpc_task *task) | 388 | rpcauth_bind_root_cred(struct rpc_task *task) |
@@ -421,7 +422,7 @@ void | |||
421 | rpcauth_bindcred(struct rpc_task *task, struct rpc_cred *cred, int flags) | 422 | rpcauth_bindcred(struct rpc_task *task, struct rpc_cred *cred, int flags) |
422 | { | 423 | { |
423 | if (cred != NULL) | 424 | if (cred != NULL) |
424 | rpcauth_generic_bind_cred(task, cred); | 425 | cred->cr_ops->crbind(task, cred); |
425 | else if (flags & RPC_TASK_ROOTCREDS) | 426 | else if (flags & RPC_TASK_ROOTCREDS) |
426 | rpcauth_bind_root_cred(task); | 427 | rpcauth_bind_root_cred(task); |
427 | else | 428 | else |