]> git.proxmox.com Git - mirror_spl.git/commitdiff
Retire spl_module_init()/spl_module_fini()
authorBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 18 Feb 2015 23:24:15 +0000 (15:24 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 27 Feb 2015 21:43:39 +0000 (13:43 -0800)
In the original implementation of the SPL wrappers were provided
for module initialization and cleanup.  This was done to abstract
away any compatibility code which might be needed for the SPL.

As it turned out the only significant compatibility issue was that
the default pwd during module load differed under Illumos and Linux.
Since this is such as minor thing and the wrappers complicate the
code they are being retired.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue zfsonlinux/zfs#2985

include/linux/Makefile.am
include/linux/module_compat.h [deleted file]
module/spl/spl-generic.c
module/splat/splat-ctl.c

index 1cca44a2bbffd37f0a5e2f06c982b7d6ef530701..712e94ebee9d5407aa410ee31455c0a5becd041e 100644 (file)
@@ -8,7 +8,6 @@ KERNEL_H = \
        $(top_srcdir)/include/linux/list_compat.h \
        $(top_srcdir)/include/linux/math64_compat.h \
        $(top_srcdir)/include/linux/mm_compat.h \
-       $(top_srcdir)/include/linux/module_compat.h \
        $(top_srcdir)/include/linux/proc_compat.h \
        $(top_srcdir)/include/linux/rwsem_compat.h \
        $(top_srcdir)/include/linux/wait_compat.h \
diff --git a/include/linux/module_compat.h b/include/linux/module_compat.h
deleted file mode 100644 (file)
index 02f42a9..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*****************************************************************************\
- *  Copyright (C) 2007-2010 Lawrence Livermore National Security, LLC.
- *  Copyright (C) 2007 The Regents of the University of California.
- *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
- *  Written by Brian Behlendorf <behlendorf1@llnl.gov>.
- *  UCRL-CODE-235197
- *
- *  This file is part of the SPL, Solaris Porting Layer.
- *  For details, see <http://zfsonlinux.org/>.
- *
- *  The SPL is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License as published by the
- *  Free Software Foundation; either version 2 of the License, or (at your
- *  option) any later version.
- *
- *  The SPL is distributed in the hope that it will be useful, but WITHOUT
- *  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- *  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- *  for more details.
- *
- *  You should have received a copy of the GNU General Public License along
- *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
-\*****************************************************************************/
-
-#ifndef _SPL_MODULE_COMPAT_H
-#define _SPL_MODULE_COMPAT_H
-
-#include <linux/module.h>
-
-#define spl_module_init(init_fn)                                        \
-static int                                                              \
-spl_##init_fn(void)                                                     \
-{                                                                       \
-       int rc;                                                         \
-                                                                       \
-       spl_setup();                                                    \
-       rc = init_fn();                                                 \
-                                                                        \
-       return rc;                                                      \
-}                                                                       \
-                                                                        \
-module_init(spl_##init_fn)
-
-#define spl_module_exit(exit_fn)                                        \
-static void                                                             \
-spl_##exit_fn(void)                                                     \
-{                                                                       \
-       int rc;                                                         \
-                                                                        \
-       rc = exit_fn();                                                 \
-       spl_cleanup();                                                  \
-       if (rc)                                                         \
-               printk(KERN_ERR "SPL: Failure %d unloading "            \
-                      "dependent module\n", rc);                       \
-}                                                                       \
-                                                                        \
-module_exit(spl_##exit_fn)
-
-#endif /* _SPL_MODULE_COMPAT_H */
index 4056c4e425110f3e5eb37253f67ea34660bec383..4d9846cf5702e85eaaa261d93b790d9f04209756 100644 (file)
@@ -518,8 +518,8 @@ spl_kvmem_fini(void)
        spl_kmem_fini();
 }
 
-static int
-__init spl_init(void)
+static int __init
+spl_init(void)
 {
        int rc = 0;
 
@@ -575,10 +575,10 @@ out1:
               "v%s-%s%s, rc = %d\n", SPL_META_VERSION, SPL_META_RELEASE,
               SPL_DEBUG_STR, rc);
 
-       return rc;
+       return (rc);
 }
 
-static void
+static void __exit
 spl_fini(void)
 {
        printk(KERN_NOTICE "SPL: Unloaded module v%s-%s%s\n",
@@ -594,30 +594,6 @@ spl_fini(void)
        spl_kvmem_fini();
 }
 
-/* Called when a dependent module is loaded */
-void
-spl_setup(void)
-{
-        int rc;
-
-        /*
-         * At module load time the pwd is set to '/' on a Solaris system.
-         * On a Linux system will be set to whatever directory the caller
-         * was in when executing insmod/modprobe.
-         */
-        rc = vn_set_pwd("/");
-        if (rc)
-                printk("SPL: Warning unable to set pwd to '/': %d\n", rc);
-}
-EXPORT_SYMBOL(spl_setup);
-
-/* Called when a dependent module is unloaded */
-void
-spl_cleanup(void)
-{
-}
-EXPORT_SYMBOL(spl_cleanup);
-
 module_init(spl_init);
 module_exit(spl_fini);
 
index bedf5d2d873f694068b0f951b63af430a8d85321..4b9bcb3f068d746e0bf8f0cba1ce817fc8273786 100644 (file)
@@ -50,7 +50,6 @@
 #include <linux/fs.h>
 #include <linux/miscdevice.h>
 #include <linux/module.h>
-#include <linux/module_compat.h>
 #include <linux/slab.h>
 #include <linux/uaccess.h>
 #include <linux/vmalloc.h>
@@ -600,7 +599,7 @@ static struct miscdevice splat_misc = {
        .fops           = &splat_fops,
 };
 
-static int
+static int __init
 splat_init(void)
 {
        int error;
@@ -636,7 +635,7 @@ splat_init(void)
        return (error);
 }
 
-static int
+static void __exit
 splat_fini(void)
 {
        int error;
@@ -665,12 +664,10 @@ splat_fini(void)
        ASSERT(list_empty(&splat_module_list));
        printk(KERN_INFO "SPLAT: Unloaded module v%s-%s%s\n",
            SPL_META_VERSION, SPL_META_RELEASE, SPL_DEBUG_STR);
-
-       return (0);
 }
 
-spl_module_init(splat_init);
-spl_module_exit(splat_fini);
+module_init(splat_init);
+module_exit(splat_fini);
 
 MODULE_DESCRIPTION("Solaris Porting LAyer Tests");
 MODULE_AUTHOR(SPL_META_AUTHOR);