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 25extern struct cache_detail ip_map_cache, unix_gid_cache; 26 27extern void cleanup_rpcb_clnt(void); 28 29static int __init 30init_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; 53out3: 54 rpc_destroy_mempool(); 55out2: 56 unregister_rpc_pipefs(); 57out: 58 return err; 59} 60 61static void __exit 62cleanup_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} 80MODULE_LICENSE("GPL"); 81fs_initcall(init_sunrpc); /* Ensure we're initialised before nfs */ 82module_exit(cleanup_sunrpc); 83