diff options
Diffstat (limited to 'net/sunrpc/auth.c')
-rw-r--r-- | net/sunrpc/auth.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c index 9527f2bb1744..f6b6c81cbc3e 100644 --- a/net/sunrpc/auth.c +++ b/net/sunrpc/auth.c | |||
@@ -137,9 +137,8 @@ void rpcauth_destroy_credlist(struct hlist_head *head) | |||
137 | * that are not referenced. | 137 | * that are not referenced. |
138 | */ | 138 | */ |
139 | void | 139 | void |
140 | rpcauth_free_credcache(struct rpc_auth *auth) | 140 | rpcauth_clear_credcache(struct rpc_cred_cache *cache) |
141 | { | 141 | { |
142 | struct rpc_cred_cache *cache = auth->au_credcache; | ||
143 | HLIST_HEAD(free); | 142 | HLIST_HEAD(free); |
144 | struct hlist_node *pos, *next; | 143 | struct hlist_node *pos, *next; |
145 | struct rpc_cred *cred; | 144 | struct rpc_cred *cred; |
@@ -157,6 +156,21 @@ rpcauth_free_credcache(struct rpc_auth *auth) | |||
157 | rpcauth_destroy_credlist(&free); | 156 | rpcauth_destroy_credlist(&free); |
158 | } | 157 | } |
159 | 158 | ||
159 | /* | ||
160 | * Destroy the RPC credential cache | ||
161 | */ | ||
162 | void | ||
163 | rpcauth_destroy_credcache(struct rpc_auth *auth) | ||
164 | { | ||
165 | struct rpc_cred_cache *cache = auth->au_credcache; | ||
166 | |||
167 | if (cache) { | ||
168 | auth->au_credcache = NULL; | ||
169 | rpcauth_clear_credcache(cache); | ||
170 | kfree(cache); | ||
171 | } | ||
172 | } | ||
173 | |||
160 | static void | 174 | static void |
161 | rpcauth_prune_expired(struct rpc_auth *auth, struct rpc_cred *cred, struct hlist_head *free) | 175 | rpcauth_prune_expired(struct rpc_auth *auth, struct rpc_cred *cred, struct hlist_head *free) |
162 | { | 176 | { |