]> Git Repo - J-linux.git/blob - fs/dlm/main.c
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / fs / dlm / main.c
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 struct workqueue_struct *dlm_wq;
26
27 static int __init init_dlm(void)
28 {
29         int error;
30
31         error = dlm_memory_init();
32         if (error)
33                 goto out;
34
35         dlm_midcomms_init();
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         dlm_register_debugfs();
46
47         error = dlm_user_init();
48         if (error)
49                 goto out_debug;
50
51         error = dlm_plock_init();
52         if (error)
53                 goto out_user;
54
55         dlm_wq = alloc_workqueue("dlm_wq", 0, 0);
56         if (!dlm_wq) {
57                 error = -ENOMEM;
58                 goto out_plock;
59         }
60
61         printk("DLM installed\n");
62
63         return 0;
64
65  out_plock:
66         dlm_plock_exit();
67  out_user:
68         dlm_user_exit();
69  out_debug:
70         dlm_unregister_debugfs();
71         dlm_config_exit();
72  out_lockspace:
73         dlm_lockspace_exit();
74  out_mem:
75         dlm_midcomms_exit();
76         dlm_memory_exit();
77  out:
78         return error;
79 }
80
81 static void __exit exit_dlm(void)
82 {
83         /* be sure every pending work e.g. freeing is done */
84         destroy_workqueue(dlm_wq);
85         dlm_plock_exit();
86         dlm_user_exit();
87         dlm_config_exit();
88         dlm_lockspace_exit();
89         dlm_midcomms_exit();
90         dlm_unregister_debugfs();
91         dlm_memory_exit();
92 }
93
94 module_init(init_dlm);
95 module_exit(exit_dlm);
96
97 MODULE_DESCRIPTION("Distributed Lock Manager");
98 MODULE_AUTHOR("Red Hat, Inc.");
99 MODULE_LICENSE("GPL");
100
101 EXPORT_SYMBOL_GPL(dlm_new_lockspace);
102 EXPORT_SYMBOL_GPL(dlm_release_lockspace);
103 EXPORT_SYMBOL_GPL(dlm_lock);
104 EXPORT_SYMBOL_GPL(dlm_unlock);
105
This page took 0.032391 seconds and 4 git commands to generate.