forked from mirrors/linux
		
	The dlm modules midcomms, debugfs, lockspace, uses kmem caches. We ensure that the kmem caches getting deallocated after those modules exited. Signed-off-by: Alexander Aring <aahringo@redhat.com> Signed-off-by: David Teigland <teigland@redhat.com>
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
// SPDX-License-Identifier: GPL-2.0-only
 | 
						|
/******************************************************************************
 | 
						|
*******************************************************************************
 | 
						|
**
 | 
						|
**  Copyright (C) Sistina Software, Inc.  1997-2003  All rights reserved.
 | 
						|
**  Copyright (C) 2004-2007 Red Hat, Inc.  All rights reserved.
 | 
						|
**
 | 
						|
**
 | 
						|
*******************************************************************************
 | 
						|
******************************************************************************/
 | 
						|
 | 
						|
#include <linux/module.h>
 | 
						|
 | 
						|
#include "dlm_internal.h"
 | 
						|
#include "lockspace.h"
 | 
						|
#include "lock.h"
 | 
						|
#include "user.h"
 | 
						|
#include "memory.h"
 | 
						|
#include "config.h"
 | 
						|
#include "midcomms.h"
 | 
						|
 | 
						|
#define CREATE_TRACE_POINTS
 | 
						|
#include <trace/events/dlm.h>
 | 
						|
 | 
						|
static int __init init_dlm(void)
 | 
						|
{
 | 
						|
	int error;
 | 
						|
 | 
						|
	error = dlm_memory_init();
 | 
						|
	if (error)
 | 
						|
		goto out;
 | 
						|
 | 
						|
	dlm_midcomms_init();
 | 
						|
 | 
						|
	error = dlm_lockspace_init();
 | 
						|
	if (error)
 | 
						|
		goto out_mem;
 | 
						|
 | 
						|
	error = dlm_config_init();
 | 
						|
	if (error)
 | 
						|
		goto out_lockspace;
 | 
						|
 | 
						|
	dlm_register_debugfs();
 | 
						|
 | 
						|
	error = dlm_user_init();
 | 
						|
	if (error)
 | 
						|
		goto out_debug;
 | 
						|
 | 
						|
	error = dlm_plock_init();
 | 
						|
	if (error)
 | 
						|
		goto out_user;
 | 
						|
 | 
						|
	printk("DLM installed\n");
 | 
						|
 | 
						|
	return 0;
 | 
						|
 | 
						|
 out_user:
 | 
						|
	dlm_user_exit();
 | 
						|
 out_debug:
 | 
						|
	dlm_unregister_debugfs();
 | 
						|
	dlm_config_exit();
 | 
						|
 out_lockspace:
 | 
						|
	dlm_lockspace_exit();
 | 
						|
 out_mem:
 | 
						|
	dlm_midcomms_exit();
 | 
						|
	dlm_memory_exit();
 | 
						|
 out:
 | 
						|
	return error;
 | 
						|
}
 | 
						|
 | 
						|
static void __exit exit_dlm(void)
 | 
						|
{
 | 
						|
	dlm_plock_exit();
 | 
						|
	dlm_user_exit();
 | 
						|
	dlm_config_exit();
 | 
						|
	dlm_lockspace_exit();
 | 
						|
	dlm_midcomms_exit();
 | 
						|
	dlm_unregister_debugfs();
 | 
						|
	dlm_memory_exit();
 | 
						|
}
 | 
						|
 | 
						|
module_init(init_dlm);
 | 
						|
module_exit(exit_dlm);
 | 
						|
 | 
						|
MODULE_DESCRIPTION("Distributed Lock Manager");
 | 
						|
MODULE_AUTHOR("Red Hat, Inc.");
 | 
						|
MODULE_LICENSE("GPL");
 | 
						|
 | 
						|
EXPORT_SYMBOL_GPL(dlm_new_lockspace);
 | 
						|
EXPORT_SYMBOL_GPL(dlm_release_lockspace);
 | 
						|
EXPORT_SYMBOL_GPL(dlm_lock);
 | 
						|
EXPORT_SYMBOL_GPL(dlm_unlock);
 | 
						|
 |