| 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 |  | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 21 | static int __init init_dlm(void) | 
 | 22 | { | 
 | 23 | 	int error; | 
 | 24 |  | 
 | 25 | 	error = dlm_memory_init(); | 
 | 26 | 	if (error) | 
 | 27 | 		goto out; | 
 | 28 |  | 
 | 29 | 	error = dlm_lockspace_init(); | 
 | 30 | 	if (error) | 
 | 31 | 		goto out_mem; | 
 | 32 |  | 
 | 33 | 	error = dlm_config_init(); | 
 | 34 | 	if (error) | 
 | 35 | 		goto out_lockspace; | 
 | 36 |  | 
 | 37 | 	error = dlm_register_debugfs(); | 
 | 38 | 	if (error) | 
 | 39 | 		goto out_config; | 
 | 40 |  | 
| David Teigland | 597d0ca | 2006-07-12 16:44:04 -0500 | [diff] [blame] | 41 | 	error = dlm_user_init(); | 
 | 42 | 	if (error) | 
| Patrick Caulfield | ac33d07 | 2006-12-06 15:10:37 +0000 | [diff] [blame] | 43 | 		goto out_debug; | 
| David Teigland | 597d0ca | 2006-07-12 16:44:04 -0500 | [diff] [blame] | 44 |  | 
| David Teigland | 3ae1acf | 2007-05-18 08:59:31 -0500 | [diff] [blame] | 45 | 	error = dlm_netlink_init(); | 
 | 46 | 	if (error) | 
 | 47 | 		goto out_user; | 
 | 48 |  | 
| David Teigland | 2402211 | 2008-03-14 15:09:15 -0500 | [diff] [blame] | 49 | 	error = dlm_plock_init(); | 
 | 50 | 	if (error) | 
 | 51 | 		goto out_netlink; | 
 | 52 |  | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 53 | 	printk("DLM (built %s %s) installed\n", __DATE__, __TIME__); | 
 | 54 |  | 
 | 55 | 	return 0; | 
 | 56 |  | 
| David Teigland | 2402211 | 2008-03-14 15:09:15 -0500 | [diff] [blame] | 57 |  out_netlink: | 
 | 58 | 	dlm_netlink_exit(); | 
| David Teigland | 3ae1acf | 2007-05-18 08:59:31 -0500 | [diff] [blame] | 59 |  out_user: | 
 | 60 | 	dlm_user_exit(); | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 61 |  out_debug: | 
 | 62 | 	dlm_unregister_debugfs(); | 
 | 63 |  out_config: | 
 | 64 | 	dlm_config_exit(); | 
 | 65 |  out_lockspace: | 
 | 66 | 	dlm_lockspace_exit(); | 
 | 67 |  out_mem: | 
 | 68 | 	dlm_memory_exit(); | 
 | 69 |  out: | 
 | 70 | 	return error; | 
 | 71 | } | 
 | 72 |  | 
 | 73 | static void __exit exit_dlm(void) | 
 | 74 | { | 
| David Teigland | 2402211 | 2008-03-14 15:09:15 -0500 | [diff] [blame] | 75 | 	dlm_plock_exit(); | 
| David Teigland | 3ae1acf | 2007-05-18 08:59:31 -0500 | [diff] [blame] | 76 | 	dlm_netlink_exit(); | 
| David Teigland | 597d0ca | 2006-07-12 16:44:04 -0500 | [diff] [blame] | 77 | 	dlm_user_exit(); | 
| David Teigland | e7fd417 | 2006-01-18 09:30:29 +0000 | [diff] [blame] | 78 | 	dlm_config_exit(); | 
 | 79 | 	dlm_memory_exit(); | 
 | 80 | 	dlm_lockspace_exit(); | 
 | 81 | 	dlm_unregister_debugfs(); | 
 | 82 | } | 
 | 83 |  | 
 | 84 | module_init(init_dlm); | 
 | 85 | module_exit(exit_dlm); | 
 | 86 |  | 
 | 87 | MODULE_DESCRIPTION("Distributed Lock Manager"); | 
 | 88 | MODULE_AUTHOR("Red Hat, Inc."); | 
 | 89 | MODULE_LICENSE("GPL"); | 
 | 90 |  | 
 | 91 | EXPORT_SYMBOL_GPL(dlm_new_lockspace); | 
 | 92 | EXPORT_SYMBOL_GPL(dlm_release_lockspace); | 
 | 93 | EXPORT_SYMBOL_GPL(dlm_lock); | 
 | 94 | EXPORT_SYMBOL_GPL(dlm_unlock); | 
 | 95 |  |