aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/sunrpc/auth_gss/svcauth_gss.c6
-rw-r--r--net/sunrpc/cache.c8
-rw-r--r--net/sunrpc/sunrpc_syms.c6
3 files changed, 9 insertions, 11 deletions
diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
index 73940df6c460..d329a12500aa 100644
--- a/net/sunrpc/auth_gss/svcauth_gss.c
+++ b/net/sunrpc/auth_gss/svcauth_gss.c
@@ -1396,9 +1396,7 @@ gss_svc_init(void)
1396void 1396void
1397gss_svc_shutdown(void) 1397gss_svc_shutdown(void)
1398{ 1398{
1399 if (cache_unregister(&rsc_cache)) 1399 cache_unregister(&rsc_cache);
1400 printk(KERN_ERR "auth_rpcgss: failed to unregister rsc cache\n"); 1400 cache_unregister(&rsi_cache);
1401 if (cache_unregister(&rsi_cache))
1402 printk(KERN_ERR "auth_rpcgss: failed to unregister rsi cache\n");
1403 svc_auth_unregister(RPC_AUTH_GSS); 1401 svc_auth_unregister(RPC_AUTH_GSS);
1404} 1402}
diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
index 3b11277d27b1..365586a999ea 100644
--- a/net/sunrpc/cache.c
+++ b/net/sunrpc/cache.c
@@ -343,7 +343,7 @@ void cache_register(struct cache_detail *cd)
343 schedule_delayed_work(&cache_cleaner, 0); 343 schedule_delayed_work(&cache_cleaner, 0);
344} 344}
345 345
346int cache_unregister(struct cache_detail *cd) 346void cache_unregister(struct cache_detail *cd)
347{ 347{
348 cache_purge(cd); 348 cache_purge(cd);
349 spin_lock(&cache_list_lock); 349 spin_lock(&cache_list_lock);
@@ -351,7 +351,7 @@ int cache_unregister(struct cache_detail *cd)
351 if (cd->entries || atomic_read(&cd->inuse)) { 351 if (cd->entries || atomic_read(&cd->inuse)) {
352 write_unlock(&cd->hash_lock); 352 write_unlock(&cd->hash_lock);
353 spin_unlock(&cache_list_lock); 353 spin_unlock(&cache_list_lock);
354 return -EBUSY; 354 goto out;
355 } 355 }
356 if (current_detail == cd) 356 if (current_detail == cd)
357 current_detail = NULL; 357 current_detail = NULL;
@@ -373,7 +373,9 @@ int cache_unregister(struct cache_detail *cd)
373 /* module must be being unloaded so its safe to kill the worker */ 373 /* module must be being unloaded so its safe to kill the worker */
374 cancel_delayed_work_sync(&cache_cleaner); 374 cancel_delayed_work_sync(&cache_cleaner);
375 } 375 }
376 return 0; 376 return;
377out:
378 printk(KERN_ERR "nfsd: failed to unregister %s cache\n", cd->name);
377} 379}
378 380
379/* clean cache tries to find something to clean 381/* clean cache tries to find something to clean
diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c
index 1a7e309d008b..ef7dc78e2c7b 100644
--- a/net/sunrpc/sunrpc_syms.c
+++ b/net/sunrpc/sunrpc_syms.c
@@ -98,10 +98,8 @@ cleanup_sunrpc(void)
98 cleanup_socket_xprt(); 98 cleanup_socket_xprt();
99 unregister_rpc_pipefs(); 99 unregister_rpc_pipefs();
100 rpc_destroy_mempool(); 100 rpc_destroy_mempool();
101 if (cache_unregister(&ip_map_cache)) 101 cache_unregister(&ip_map_cache);
102 printk(KERN_ERR "sunrpc: failed to unregister ip_map cache\n"); 102 cache_unregister(&unix_gid_cache);
103 if (cache_unregister(&unix_gid_cache))
104 printk(KERN_ERR "sunrpc: failed to unregister unix_gid cache\n");
105#ifdef RPC_DEBUG 103#ifdef RPC_DEBUG
106 rpc_unregister_sysctl(); 104 rpc_unregister_sysctl();
107#endif 105#endif