mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 01:04:19 +08:00
7963b8a598
Historically a lot of these existed because we did not have a distinction between what was modular code and what was providing support to modules via EXPORT_SYMBOL and friends. That changed when we forked out support for the latter into the export.h file. This means we should be able to reduce the usage of module.h in code that is obj-y Makefile or bool Kconfig. In the case of some code where it is modular, we can extend that to also include files that are building basic support functionality but not related to loading or registering the final module; such files also have no need whatsoever for module.h The advantage in removing such instances is that module.h itself sources about 15 other headers; adding significantly to what we feed cpp, and it can obscure what headers we are effectively using. Since module.h might have been the implicit source for init.h (for __init) and for export.h (for EXPORT_SYMBOL) we consider each instance for the presence of either and replace as needed. In the dlm case, we remove module.h from a global header and only introduce it in the files where it is explicitly required, since there is nothing modular in dlm_internal.h itself. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: David Teigland <teigland@redhat.com>
100 lines
2.0 KiB
C
100 lines
2.0 KiB
C
/******************************************************************************
|
|
*******************************************************************************
|
|
**
|
|
** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
|
|
** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
|
|
**
|
|
** This copyrighted material is made available to anyone wishing to use,
|
|
** modify, copy, or redistribute it subject to the terms and conditions
|
|
** of the GNU General Public License v.2.
|
|
**
|
|
*******************************************************************************
|
|
******************************************************************************/
|
|
|
|
#include <linux/module.h>
|
|
|
|
#include "dlm_internal.h"
|
|
#include "lockspace.h"
|
|
#include "lock.h"
|
|
#include "user.h"
|
|
#include "memory.h"
|
|
#include "config.h"
|
|
#include "lowcomms.h"
|
|
|
|
static int __init init_dlm(void)
|
|
{
|
|
int error;
|
|
|
|
error = dlm_memory_init();
|
|
if (error)
|
|
goto out;
|
|
|
|
error = dlm_lockspace_init();
|
|
if (error)
|
|
goto out_mem;
|
|
|
|
error = dlm_config_init();
|
|
if (error)
|
|
goto out_lockspace;
|
|
|
|
error = dlm_register_debugfs();
|
|
if (error)
|
|
goto out_config;
|
|
|
|
error = dlm_user_init();
|
|
if (error)
|
|
goto out_debug;
|
|
|
|
error = dlm_netlink_init();
|
|
if (error)
|
|
goto out_user;
|
|
|
|
error = dlm_plock_init();
|
|
if (error)
|
|
goto out_netlink;
|
|
|
|
printk("DLM installed\n");
|
|
|
|
return 0;
|
|
|
|
out_netlink:
|
|
dlm_netlink_exit();
|
|
out_user:
|
|
dlm_user_exit();
|
|
out_debug:
|
|
dlm_unregister_debugfs();
|
|
out_config:
|
|
dlm_config_exit();
|
|
out_lockspace:
|
|
dlm_lockspace_exit();
|
|
out_mem:
|
|
dlm_memory_exit();
|
|
out:
|
|
return error;
|
|
}
|
|
|
|
static void __exit exit_dlm(void)
|
|
{
|
|
dlm_plock_exit();
|
|
dlm_netlink_exit();
|
|
dlm_user_exit();
|
|
dlm_config_exit();
|
|
dlm_memory_exit();
|
|
dlm_lockspace_exit();
|
|
dlm_lowcomms_exit();
|
|
dlm_unregister_debugfs();
|
|
}
|
|
|
|
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);
|
|
|