brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · 4887c8a Raw
106 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2/******************************************************************************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_POINTS23#include <trace/events/dlm.h>24 25struct workqueue_struct *dlm_wq;26 27static 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 81static 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 94module_init(init_dlm);95module_exit(exit_dlm);96 97MODULE_DESCRIPTION("Distributed Lock Manager");98MODULE_AUTHOR("Red Hat, Inc.");99MODULE_LICENSE("GPL");100 101EXPORT_SYMBOL_GPL(dlm_new_lockspace);102EXPORT_SYMBOL_GPL(dlm_release_lockspace);103EXPORT_SYMBOL_GPL(dlm_lock);104EXPORT_SYMBOL_GPL(dlm_unlock);105 106