xref: /linux/fs/dlm/main.c (revision 5cd2340cb6a383d04fd88e48fabc2a21a909d6a1)
1 // SPDX-License-Identifier: GPL-2.0-only
2 /******************************************************************************
3 *******************************************************************************
4 **
5 **  Copyright (C) Sistina Software, Inc.  1997-2003  All rights reserved.
6 **  Copyright (C) 2004-2007 Red Hat, Inc.  All rights reserved.
7 **
8 **
9 *******************************************************************************
10 ******************************************************************************/
11 
12 #include <linux/module.h>
13 
14 #include "dlm_internal.h"
15 #include "lockspace.h"
16 #include "lock.h"
17 #include "user.h"
18 #include "memory.h"
19 #include "config.h"
20 #include "midcomms.h"
21 
22 #define CREATE_TRACE_POINTS
23 #include <trace/events/dlm.h>
24 
25 static int __init init_dlm(void)
26 {
27 	int error;
28 
29 	error = dlm_memory_init();
30 	if (error)
31 		goto out;
32 
33 	dlm_midcomms_init();
34 
35 	error = dlm_lockspace_init();
36 	if (error)
37 		goto out_mem;
38 
39 	error = dlm_config_init();
40 	if (error)
41 		goto out_lockspace;
42 
43 	dlm_register_debugfs();
44 
45 	error = dlm_user_init();
46 	if (error)
47 		goto out_debug;
48 
49 	error = dlm_plock_init();
50 	if (error)
51 		goto out_user;
52 
53 	printk("DLM installed\n");
54 
55 	return 0;
56 
57  out_user:
58 	dlm_user_exit();
59  out_debug:
60 	dlm_unregister_debugfs();
61 	dlm_config_exit();
62  out_lockspace:
63 	dlm_lockspace_exit();
64  out_mem:
65 	dlm_midcomms_exit();
66 	dlm_memory_exit();
67  out:
68 	return error;
69 }
70 
71 static void __exit exit_dlm(void)
72 {
73 	dlm_plock_exit();
74 	dlm_user_exit();
75 	dlm_config_exit();
76 	dlm_lockspace_exit();
77 	dlm_midcomms_exit();
78 	dlm_unregister_debugfs();
79 	dlm_memory_exit();
80 }
81 
82 module_init(init_dlm);
83 module_exit(exit_dlm);
84 
85 MODULE_DESCRIPTION("Distributed Lock Manager");
86 MODULE_AUTHOR("Red Hat, Inc.");
87 MODULE_LICENSE("GPL");
88 
89 EXPORT_SYMBOL_GPL(dlm_new_lockspace);
90 EXPORT_SYMBOL_GPL(dlm_release_lockspace);
91 EXPORT_SYMBOL_GPL(dlm_lock);
92 EXPORT_SYMBOL_GPL(dlm_unlock);
93 
94