1 /* 2 * linux/net/sunrpc/sunrpc_syms.c 3 * 4 * Symbols exported by the sunrpc module. 5 * 6 * Copyright (C) 1997 Olaf Kirch <okir@monad.swb.de> 7 */ 8 9 #include <linux/module.h> 10 11 #include <linux/types.h> 12 #include <linux/uio.h> 13 #include <linux/unistd.h> 14 #include <linux/init.h> 15 16 #include <linux/sunrpc/sched.h> 17 #include <linux/sunrpc/clnt.h> 18 #include <linux/sunrpc/svc.h> 19 #include <linux/sunrpc/svcsock.h> 20 #include <linux/sunrpc/auth.h> 21 #include <linux/workqueue.h> 22 #include <linux/sunrpc/rpc_pipe_fs.h> 23 #include <linux/sunrpc/xprtsock.h> 24 25 extern struct cache_detail ip_map_cache, unix_gid_cache; 26 27 extern void cleanup_rpcb_clnt(void); 28 29 static int __init 30 init_sunrpc(void) 31 { 32 int err = register_rpc_pipefs(); 33 if (err) 34 goto out; 35 err = rpc_init_mempool(); 36 if (err) 37 goto out2; 38 err = rpcauth_init_module(); 39 if (err) 40 goto out3; 41 #ifdef RPC_DEBUG 42 rpc_register_sysctl(); 43 #endif 44 #ifdef CONFIG_PROC_FS 45 rpc_proc_init(); 46 #endif 47 cache_initialize(); 48 cache_register(&ip_map_cache); 49 cache_register(&unix_gid_cache); 50 svc_init_xprt_sock(); /* svc sock transport */ 51 init_socket_xprt(); /* clnt sock transport */ 52 return 0; 53 out3: 54 rpc_destroy_mempool(); 55 out2: 56 unregister_rpc_pipefs(); 57 out: 58 return err; 59 } 60 61 static void __exit 62 cleanup_sunrpc(void) 63 { 64 cleanup_rpcb_clnt(); 65 rpcauth_remove_module(); 66 cleanup_socket_xprt(); 67 svc_cleanup_xprt_sock(); 68 unregister_rpc_pipefs(); 69 rpc_destroy_mempool(); 70 cache_unregister(&ip_map_cache); 71 cache_unregister(&unix_gid_cache); 72 #ifdef RPC_DEBUG 73 rpc_unregister_sysctl(); 74 #endif 75 #ifdef CONFIG_PROC_FS 76 rpc_proc_exit(); 77 #endif 78 rcu_barrier(); /* Wait for completion of call_rcu()'s */ 79 } 80 MODULE_LICENSE("GPL"); 81 fs_initcall(init_sunrpc); /* Ensure we're initialised before nfs */ 82 module_exit(cleanup_sunrpc); 83