aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/auth_unix.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2007-06-24 15:55:26 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2007-07-10 23:40:36 -0400
commit31be5bf15f3dafffce110eb1afadccbf2e3067b4 (patch)
tree6e680e926d79a1c5fe6a5a726c3f16cb3b86adfa /net/sunrpc/auth_unix.c
parente092bdcd939416ef911090890096fe07d0281a5e (diff)
SUNRPC: Convert the credcache lookup code to use RCU
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'net/sunrpc/auth_unix.c')
-rw-r--r--net/sunrpc/auth_unix.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/net/sunrpc/auth_unix.c b/net/sunrpc/auth_unix.c
index 29d50ffa69d6..f7ff6ad3259e 100644
--- a/net/sunrpc/auth_unix.c
+++ b/net/sunrpc/auth_unix.c
@@ -93,11 +93,23 @@ unx_create_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags)
93} 93}
94 94
95static void 95static void
96unx_destroy_cred(struct rpc_cred *rcred) 96unx_free_cred(struct unx_cred *unx_cred)
97{ 97{
98 struct unx_cred *cred = container_of(rcred, struct unx_cred, uc_base); 98 dprintk("RPC: unx_free_cred %p\n", unx_cred);
99 kfree(unx_cred);
100}
101
102static void
103unx_free_cred_callback(struct rcu_head *head)
104{
105 struct unx_cred *unx_cred = container_of(head, struct unx_cred, uc_base.cr_rcu);
106 unx_free_cred(unx_cred);
107}
99 108
100 kfree(cred); 109static void
110unx_destroy_cred(struct rpc_cred *cred)
111{
112 call_rcu(&cred->cr_rcu, unx_free_cred_callback);
101} 113}
102 114
103/* 115/*