linux/fs/dlm/main.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-only
   2/******************************************************************************
   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 "lowcomms.h"
  21
  22static int __init init_dlm(void)
  23{
  24        int error;
  25
  26        error = dlm_memory_init();
  27        if (error)
  28                goto out;
  29
  30        error = dlm_lockspace_init();
  31        if (error)
  32                goto out_mem;
  33
  34        error = dlm_config_init();
  35        if (error)
  36                goto out_lockspace;
  37
  38        dlm_register_debugfs();
  39
  40        error = dlm_user_init();
  41        if (error)
  42                goto out_debug;
  43
  44        error = dlm_netlink_init();
  45        if (error)
  46                goto out_user;
  47
  48        error = dlm_plock_init();
  49        if (error)
  50                goto out_netlink;
  51
  52        printk("DLM installed\n");
  53
  54        return 0;
  55
  56 out_netlink:
  57        dlm_netlink_exit();
  58 out_user:
  59        dlm_user_exit();
  60 out_debug:
  61        dlm_unregister_debugfs();
  62        dlm_config_exit();
  63 out_lockspace:
  64        dlm_lockspace_exit();
  65 out_mem:
  66        dlm_memory_exit();
  67 out:
  68        return error;
  69}
  70
  71static void __exit exit_dlm(void)
  72{
  73        dlm_plock_exit();
  74        dlm_netlink_exit();
  75        dlm_user_exit();
  76        dlm_config_exit();
  77        dlm_memory_exit();
  78        dlm_lockspace_exit();
  79        dlm_lowcomms_exit();
  80        dlm_unregister_debugfs();
  81}
  82
  83module_init(init_dlm);
  84module_exit(exit_dlm);
  85
  86MODULE_DESCRIPTION("Distributed Lock Manager");
  87MODULE_AUTHOR("Red Hat, Inc.");
  88MODULE_LICENSE("GPL");
  89
  90EXPORT_SYMBOL_GPL(dlm_new_lockspace);
  91EXPORT_SYMBOL_GPL(dlm_release_lockspace);
  92EXPORT_SYMBOL_GPL(dlm_lock);
  93EXPORT_SYMBOL_GPL(dlm_unlock);
  94
  95