diff options
author | David Teigland <teigland@redhat.com> | 2006-01-18 04:30:29 -0500 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-01-18 04:30:29 -0500 |
commit | e7fd41792fc0ee52a05fcaac87511f118328d147 (patch) | |
tree | eee5227088ba97daef795e385b7548d2a1cc4cb6 /fs/dlm/main.c | |
parent | e47314207032cfd1157b8c377df162839b32ea6f (diff) |
[DLM] The core of the DLM for GFS2/CLVM
This is the core of the distributed lock manager which is required
to use GFS2 as a cluster filesystem. It is also used by CLVM and
can be used as a standalone lock manager independantly of either
of these two projects.
It implements VAX-style locking modes.
Signed-off-by: David Teigland <teigland@redhat.com>
Signed-off-by: Steve Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/dlm/main.c')
-rw-r--r-- | fs/dlm/main.c | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/fs/dlm/main.c b/fs/dlm/main.c new file mode 100644 index 000000000000..81bf4cb22033 --- /dev/null +++ b/fs/dlm/main.c | |||
@@ -0,0 +1,89 @@ | |||
1 | /****************************************************************************** | ||
2 | ******************************************************************************* | ||
3 | ** | ||
4 | ** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. | ||
5 | ** Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. | ||
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" | ||
17 | #include "memory.h" | ||
18 | #include "lowcomms.h" | ||
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 | ||
28 | |||
29 | static int __init init_dlm(void) | ||
30 | { | ||
31 | int error; | ||
32 | |||
33 | error = dlm_memory_init(); | ||
34 | if (error) | ||
35 | goto out; | ||
36 | |||
37 | error = dlm_lockspace_init(); | ||
38 | if (error) | ||
39 | goto out_mem; | ||
40 | |||
41 | error = dlm_config_init(); | ||
42 | if (error) | ||
43 | goto out_lockspace; | ||
44 | |||
45 | error = dlm_register_debugfs(); | ||
46 | if (error) | ||
47 | goto out_config; | ||
48 | |||
49 | error = dlm_lowcomms_init(); | ||
50 | if (error) | ||
51 | goto out_debug; | ||
52 | |||
53 | printk("DLM (built %s %s) installed\n", __DATE__, __TIME__); | ||
54 | |||
55 | return 0; | ||
56 | |||
57 | out_debug: | ||
58 | dlm_unregister_debugfs(); | ||
59 | out_config: | ||
60 | dlm_config_exit(); | ||
61 | out_lockspace: | ||
62 | dlm_lockspace_exit(); | ||
63 | out_mem: | ||
64 | dlm_memory_exit(); | ||
65 | out: | ||
66 | return error; | ||
67 | } | ||
68 | |||
69 | static void __exit exit_dlm(void) | ||
70 | { | ||
71 | dlm_lowcomms_exit(); | ||
72 | dlm_config_exit(); | ||
73 | dlm_memory_exit(); | ||
74 | dlm_lockspace_exit(); | ||
75 | dlm_unregister_debugfs(); | ||
76 | } | ||
77 | |||
78 | module_init(init_dlm); | ||
79 | module_exit(exit_dlm); | ||
80 | |||
81 | MODULE_DESCRIPTION("Distributed Lock Manager"); | ||
82 | MODULE_AUTHOR("Red Hat, Inc."); | ||
83 | MODULE_LICENSE("GPL"); | ||
84 | |||
85 | EXPORT_SYMBOL_GPL(dlm_new_lockspace); | ||
86 | EXPORT_SYMBOL_GPL(dlm_release_lockspace); | ||
87 | EXPORT_SYMBOL_GPL(dlm_lock); | ||
88 | EXPORT_SYMBOL_GPL(dlm_unlock); | ||
89 | |||