linux/fs/dlm/main.c
<<
>>
Prefs
   1/******************************************************************************
   2*******************************************************************************
   3**
   4**  Copyright (C) Sistina Software, Inc.  1997-2003  All rights reserved.
   5**  Copyright (C) 2004-2007 Red Hat, Inc.  All rights reserved.
   6**
   7**  This copyrighted material is made available to anyone wishing to use,
   8**  modify, copy, or redistribute it subject to the terms and conditions
   9**  of the GNU General Public License v.2.
  10**
  11*******************************************************************************
  12******************************************************************************/
  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        error = dlm_register_debugfs();
  39        if (error)
  40                goto out_config;
  41
  42        error = dlm_user_init();
  43        if (error)
  44                goto out_debug;
  45
  46        error = dlm_netlink_init();
  47        if (error)
  48                goto out_user;
  49
  50        error = dlm_plock_init();
  51        if (error)
  52                goto out_netlink;
  53
  54        printk("DLM installed\n");
  55
  56        return 0;
  57
  58 out_netlink:
  59        dlm_netlink_exit();
  60 out_user:
  61        dlm_user_exit();
  62 out_debug:
  63        dlm_unregister_debugfs();
  64 out_config:
  65        dlm_config_exit();
  66 out_lockspace:
  67        dlm_lockspace_exit();
  68 out_mem:
  69        dlm_memory_exit();
  70 out:
  71        return error;
  72}
  73
  74static void __exit exit_dlm(void)
  75{
  76        dlm_plock_exit();
  77        dlm_netlink_exit();
  78        dlm_user_exit();
  79        dlm_config_exit();
  80        dlm_memory_exit();
  81        dlm_lockspace_exit();
  82        dlm_lowcomms_exit();
  83        dlm_unregister_debugfs();
  84}
  85
  86module_init(init_dlm);
  87module_exit(exit_dlm);
  88
  89MODULE_DESCRIPTION("Distributed Lock Manager");
  90MODULE_AUTHOR("Red Hat, Inc.");
  91MODULE_LICENSE("GPL");
  92
  93EXPORT_SYMBOL_GPL(dlm_new_lockspace);
  94EXPORT_SYMBOL_GPL(dlm_release_lockspace);
  95EXPORT_SYMBOL_GPL(dlm_lock);
  96EXPORT_SYMBOL_GPL(dlm_unlock);
  97
  98