Merge branch 'master' into gfs2
[linux-2.6] / fs / gfs2 / locking / dlm / main.c
1 /*
2  * Copyright (C) Sistina Software, Inc.  1997-2003 All rights reserved.
3  * Copyright (C) 2004-2005 Red Hat, Inc.  All rights reserved.
4  *
5  * This copyrighted material is made available to anyone wishing to use,
6  * modify, copy, or redistribute it subject to the terms and conditions
7  * of the GNU General Public License version 2.
8  */
9
10 #include <linux/init.h>
11
12 #include "lock_dlm.h"
13
14 extern int gdlm_drop_count;
15 extern int gdlm_drop_period;
16
17 extern struct lm_lockops gdlm_ops;
18
19 static int __init init_lock_dlm(void)
20 {
21         int error;
22
23         error = gfs2_register_lockproto(&gdlm_ops);
24         if (error) {
25                 printk(KERN_WARNING "lock_dlm:  can't register protocol: %d\n",
26                        error);
27                 return error;
28         }
29
30         error = gdlm_sysfs_init();
31         if (error) {
32                 gfs2_unregister_lockproto(&gdlm_ops);
33                 return error;
34         }
35
36         error = gdlm_plock_init();
37         if (error) {
38                 gdlm_sysfs_exit();
39                 gfs2_unregister_lockproto(&gdlm_ops);
40                 return error;
41         }
42
43         gdlm_drop_count = GDLM_DROP_COUNT;
44         gdlm_drop_period = GDLM_DROP_PERIOD;
45
46         printk(KERN_INFO
47                "Lock_DLM (built %s %s) installed\n", __DATE__, __TIME__);
48         return 0;
49 }
50
51 static void __exit exit_lock_dlm(void)
52 {
53         gdlm_plock_exit();
54         gdlm_sysfs_exit();
55         gfs2_unregister_lockproto(&gdlm_ops);
56 }
57
58 module_init(init_lock_dlm);
59 module_exit(exit_lock_dlm);
60
61 MODULE_DESCRIPTION("GFS DLM Locking Module");
62 MODULE_AUTHOR("Red Hat, Inc.");
63 MODULE_LICENSE("GPL");
64