blob: 2c13c916a35209ec1a4cdc379a28705ab29ad607 [file] [log] [blame]
David Teigland869d81d2006-01-17 08:47:12 +00001/*
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 v.2.
8 */
David Teigland29b79982006-01-16 16:52:38 +00009
10#include <linux/init.h>
11
12#include "lock_dlm.h"
13
14extern int gdlm_drop_count;
15extern int gdlm_drop_period;
16
17extern struct lm_lockops gdlm_ops;
18
19int __init init_lock_dlm(void)
20{
21 int error;
22
David Teigland869d81d2006-01-17 08:47:12 +000023 error = gfs_register_lockproto(&gdlm_ops);
David Teigland29b79982006-01-16 16:52:38 +000024 if (error) {
25 printk("lock_dlm: can't register protocol: %d\n", error);
26 return error;
27 }
28
29 error = gdlm_sysfs_init();
30 if (error) {
David Teigland869d81d2006-01-17 08:47:12 +000031 gfs_unregister_lockproto(&gdlm_ops);
32 return error;
33 }
34
35 error = gdlm_plock_init();
36 if (error) {
37 gdlm_sysfs_exit();
38 gfs_unregister_lockproto(&gdlm_ops);
David Teigland29b79982006-01-16 16:52:38 +000039 return error;
40 }
41
42 gdlm_drop_count = GDLM_DROP_COUNT;
43 gdlm_drop_period = GDLM_DROP_PERIOD;
44
45 printk("Lock_DLM (built %s %s) installed\n", __DATE__, __TIME__);
46 return 0;
47}
48
49void __exit exit_lock_dlm(void)
50{
David Teigland869d81d2006-01-17 08:47:12 +000051 gdlm_plock_exit();
David Teigland29b79982006-01-16 16:52:38 +000052 gdlm_sysfs_exit();
David Teigland869d81d2006-01-17 08:47:12 +000053 gfs_unregister_lockproto(&gdlm_ops);
David Teigland29b79982006-01-16 16:52:38 +000054}
55
56module_init(init_lock_dlm);
57module_exit(exit_lock_dlm);
58
59MODULE_DESCRIPTION("GFS DLM Locking Module");
60MODULE_AUTHOR("Red Hat, Inc.");
61MODULE_LICENSE("GPL");
62