Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
main.c
Go to the documentation of this file.
1 /******************************************************************************
2 *******************************************************************************
3 **
4 ** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
5 ** Copyright (C) 2004-2007 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 "user.h"
18 #include "memory.h"
19 #include "config.h"
20 #include "lowcomms.h"
21 
22 static int __init init_dlm(void)
23 {
24  int error;
25 
26  error = dlm_memory_init();
27  if (error)
28  goto out;
29 
30  error = dlm_lockspace_init();
31  if (error)
32  goto out_mem;
33 
34  error = dlm_config_init();
35  if (error)
36  goto out_lockspace;
37 
38  error = dlm_register_debugfs();
39  if (error)
40  goto out_config;
41 
42  error = dlm_user_init();
43  if (error)
44  goto out_debug;
45 
46  error = dlm_netlink_init();
47  if (error)
48  goto out_user;
49 
50  error = dlm_plock_init();
51  if (error)
52  goto out_netlink;
53 
54  printk("DLM installed\n");
55 
56  return 0;
57 
58  out_netlink:
60  out_user:
61  dlm_user_exit();
62  out_debug:
64  out_config:
66  out_lockspace:
68  out_mem:
70  out:
71  return error;
72 }
73 
74 static void __exit exit_dlm(void)
75 {
78  dlm_user_exit();
84 }
85 
86 module_init(init_dlm);
87 module_exit(exit_dlm);
88 
89 MODULE_DESCRIPTION("Distributed Lock Manager");
90 MODULE_AUTHOR("Red Hat, Inc.");
91 MODULE_LICENSE("GPL");
92 
97