| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 1 | /****************************************************************************** | 
 | 2 | ******************************************************************************* | 
 | 3 | ** | 
 | 4 | **  Copyright (C) Sistina Software, Inc.  1997-2003  All rights reserved. | 
| David Teigland | 3ae1acf | 2007-05-18 08:59:31 -0500 | [diff] [blame] | 5 | **  Copyright (C) 2004-2007 Red Hat, Inc.  All rights reserved. | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 6 | ** | 
 | 7 | **  This copyrighted material is made available to anyone wishing to use, | 
 | 8 | **  modify, copy, or redistribute it subject to the terms and conditions | 
 | 9 | **  of the GNU General Public License v.2. | 
 | 10 | ** | 
 | 11 | ******************************************************************************* | 
 | 12 | ******************************************************************************/ | 
 | 13 |  | 
 | 14 | #include "dlm_internal.h" | 
 | 15 | #include "lockspace.h" | 
 | 16 | #include "lock.h" | 
| David Teigland | 597d0ca | 2006-07-12 16:44:04 -0500 | [diff] [blame] | 17 | #include "user.h" | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 18 | #include "memory.h" | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 19 | #include "config.h" | 
 | 20 |  | 
 | 21 | #ifdef CONFIG_DLM_DEBUG | 
 | 22 | int dlm_register_debugfs(void); | 
 | 23 | void dlm_unregister_debugfs(void); | 
 | 24 | #else | 
 | 25 | static inline int dlm_register_debugfs(void) { return 0; } | 
 | 26 | static inline void dlm_unregister_debugfs(void) { } | 
 | 27 | #endif | 
| David Teigland | 3ae1acf | 2007-05-18 08:59:31 -0500 | [diff] [blame] | 28 | int dlm_netlink_init(void); | 
 | 29 | void dlm_netlink_exit(void); | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 30 |  | 
 | 31 | static int __init init_dlm(void) | 
 | 32 | { | 
 | 33 | 	int error; | 
 | 34 |  | 
 | 35 | 	error = dlm_memory_init(); | 
 | 36 | 	if (error) | 
 | 37 | 		goto out; | 
 | 38 |  | 
 | 39 | 	error = dlm_lockspace_init(); | 
 | 40 | 	if (error) | 
 | 41 | 		goto out_mem; | 
 | 42 |  | 
 | 43 | 	error = dlm_config_init(); | 
 | 44 | 	if (error) | 
 | 45 | 		goto out_lockspace; | 
 | 46 |  | 
 | 47 | 	error = dlm_register_debugfs(); | 
 | 48 | 	if (error) | 
 | 49 | 		goto out_config; | 
 | 50 |  | 
| David Teigland | 597d0ca | 2006-07-12 16:44:04 -0500 | [diff] [blame] | 51 | 	error = dlm_user_init(); | 
 | 52 | 	if (error) | 
| Patrick Caulfield | ac33d07 | 2006-12-06 15:10:37 +0000 | [diff] [blame] | 53 | 		goto out_debug; | 
| David Teigland | 597d0ca | 2006-07-12 16:44:04 -0500 | [diff] [blame] | 54 |  | 
| David Teigland | 3ae1acf | 2007-05-18 08:59:31 -0500 | [diff] [blame] | 55 | 	error = dlm_netlink_init(); | 
 | 56 | 	if (error) | 
 | 57 | 		goto out_user; | 
 | 58 |  | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 59 | 	printk("DLM (built %s %s) installed\n", __DATE__, __TIME__); | 
 | 60 |  | 
 | 61 | 	return 0; | 
 | 62 |  | 
| David Teigland | 3ae1acf | 2007-05-18 08:59:31 -0500 | [diff] [blame] | 63 |  out_user: | 
 | 64 | 	dlm_user_exit(); | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 65 |  out_debug: | 
 | 66 | 	dlm_unregister_debugfs(); | 
 | 67 |  out_config: | 
 | 68 | 	dlm_config_exit(); | 
 | 69 |  out_lockspace: | 
 | 70 | 	dlm_lockspace_exit(); | 
 | 71 |  out_mem: | 
 | 72 | 	dlm_memory_exit(); | 
 | 73 |  out: | 
 | 74 | 	return error; | 
 | 75 | } | 
 | 76 |  | 
 | 77 | static void __exit exit_dlm(void) | 
 | 78 | { | 
| David Teigland | 3ae1acf | 2007-05-18 08:59:31 -0500 | [diff] [blame] | 79 | 	dlm_netlink_exit(); | 
| David Teigland | 597d0ca | 2006-07-12 16:44:04 -0500 | [diff] [blame] | 80 | 	dlm_user_exit(); | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 81 | 	dlm_config_exit(); | 
 | 82 | 	dlm_memory_exit(); | 
 | 83 | 	dlm_lockspace_exit(); | 
 | 84 | 	dlm_unregister_debugfs(); | 
 | 85 | } | 
 | 86 |  | 
 | 87 | module_init(init_dlm); | 
 | 88 | module_exit(exit_dlm); | 
 | 89 |  | 
 | 90 | MODULE_DESCRIPTION("Distributed Lock Manager"); | 
 | 91 | MODULE_AUTHOR("Red Hat, Inc."); | 
 | 92 | MODULE_LICENSE("GPL"); | 
 | 93 |  | 
 | 94 | EXPORT_SYMBOL_GPL(dlm_new_lockspace); | 
 | 95 | EXPORT_SYMBOL_GPL(dlm_release_lockspace); | 
 | 96 | EXPORT_SYMBOL_GPL(dlm_lock); | 
 | 97 | EXPORT_SYMBOL_GPL(dlm_unlock); | 
 | 98 |  |