Retire spl_module_init()/spl_module_fini()

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>
Closes #2985
This commit is contained in:
Brian Behlendorf 2015-02-18 15:39:05 -08:00
parent 1efdc45ea8
commit b4f3666a16
6 changed files with 58 additions and 34 deletions

View File

@ -1030,13 +1030,19 @@ done:
} }
#if defined(_KERNEL) && defined(HAVE_SPL) #if defined(_KERNEL) && defined(HAVE_SPL)
#include <linux/module_compat.h> static int __init
avl_init(void)
{
return (0);
}
static int avl_init(void) { return 0; } static void __exit
static int avl_fini(void) { return 0; } avl_fini(void)
{
}
spl_module_init(avl_init); module_init(avl_init);
spl_module_exit(avl_fini); module_exit(avl_fini);
MODULE_DESCRIPTION("Generic AVL tree implementation"); MODULE_DESCRIPTION("Generic AVL tree implementation");
MODULE_AUTHOR(ZFS_META_AUTHOR); MODULE_AUTHOR(ZFS_META_AUTHOR);

View File

@ -3293,13 +3293,19 @@ nvs_xdr(nvstream_t *nvs, nvlist_t *nvl, char *buf, size_t *buflen)
} }
#if defined(_KERNEL) && defined(HAVE_SPL) #if defined(_KERNEL) && defined(HAVE_SPL)
#include <linux/module_compat.h> static int __init
nvpair_init(void)
{
return (0);
}
static int nvpair_init(void) { return 0; } static void __exit
static int nvpair_fini(void) { return 0; } nvpair_fini(void)
{
}
spl_module_init(nvpair_init); module_init(nvpair_init);
spl_module_exit(nvpair_fini); module_exit(nvpair_fini);
MODULE_DESCRIPTION("Generic name/value pair implementation"); MODULE_DESCRIPTION("Generic name/value pair implementation");
MODULE_AUTHOR(ZFS_META_AUTHOR); MODULE_AUTHOR(ZFS_META_AUTHOR);

View File

@ -2133,13 +2133,18 @@ u8_textprep_str(char *inarray, size_t *inlen, char *outarray, size_t *outlen,
} }
#if defined(_KERNEL) && defined(HAVE_SPL) #if defined(_KERNEL) && defined(HAVE_SPL)
#include <linux/module_compat.h> static int __init
unicode_init(void) {
return (0);
}
static int unicode_init(void) { return 0; } static void __exit
static int unicode_fini(void) { return 0; } unicode_fini(void)
{
}
spl_module_init(unicode_init); module_init(unicode_init);
spl_module_exit(unicode_fini); module_exit(unicode_fini);
MODULE_DESCRIPTION("Unicode implementation"); MODULE_DESCRIPTION("Unicode implementation");
MODULE_AUTHOR(ZFS_META_AUTHOR); MODULE_AUTHOR(ZFS_META_AUTHOR);

View File

@ -678,13 +678,19 @@ zfs_prop_align_right(zfs_prop_t prop)
#endif #endif
#if defined(_KERNEL) && defined(HAVE_SPL) #if defined(_KERNEL) && defined(HAVE_SPL)
#include <linux/module_compat.h> static int __init
zcommon_init(void)
{
return (0);
}
static int zcommon_init(void) { return 0; } static void __exit
static int zcommon_fini(void) { return 0; } zcommon_fini(void)
{
}
spl_module_init(zcommon_init); module_init(zcommon_init);
spl_module_exit(zcommon_fini); module_exit(zcommon_fini);
MODULE_DESCRIPTION("Generic ZFS support"); MODULE_DESCRIPTION("Generic ZFS support");
MODULE_AUTHOR(ZFS_META_AUTHOR); MODULE_AUTHOR(ZFS_META_AUTHOR);

View File

@ -186,7 +186,6 @@
#include <sys/zfeature.h> #include <sys/zfeature.h>
#include <linux/miscdevice.h> #include <linux/miscdevice.h>
#include <linux/module_compat.h>
#include "zfs_namecheck.h" #include "zfs_namecheck.h"
#include "zfs_prop.h" #include "zfs_prop.h"
@ -5954,11 +5953,18 @@ zfs_allow_log_destroy(void *arg)
#define ZFS_DEBUG_STR "" #define ZFS_DEBUG_STR ""
#endif #endif
int static int __init
_init(void) _init(void)
{ {
int error; int error;
error = vn_set_pwd("/");
if (error) {
printk(KERN_NOTICE
"ZFS: Warning unable to set pwd to '/': %d\n", error);
return (error);
}
spa_init(FREAD | FWRITE); spa_init(FREAD | FWRITE);
zfs_init(); zfs_init();
@ -5996,7 +6002,7 @@ out1:
return (error); return (error);
} }
int static void __exit
_fini(void) _fini(void)
{ {
zfs_detach(); zfs_detach();
@ -6010,13 +6016,11 @@ _fini(void)
printk(KERN_NOTICE "ZFS: Unloaded module v%s-%s%s\n", printk(KERN_NOTICE "ZFS: Unloaded module v%s-%s%s\n",
ZFS_META_VERSION, ZFS_META_RELEASE, ZFS_DEBUG_STR); ZFS_META_VERSION, ZFS_META_RELEASE, ZFS_DEBUG_STR);
return (0);
} }
#ifdef HAVE_SPL #ifdef HAVE_SPL
spl_module_init(_init); module_init(_init);
spl_module_exit(_fini); module_exit(_fini);
MODULE_DESCRIPTION("ZFS"); MODULE_DESCRIPTION("ZFS");
MODULE_AUTHOR(ZFS_META_AUTHOR); MODULE_AUTHOR(ZFS_META_AUTHOR);

View File

@ -36,7 +36,6 @@
#include <sys/txg.h> #include <sys/txg.h>
#include <sys/dsl_destroy.h> #include <sys/dsl_destroy.h>
#include <linux/miscdevice.h> #include <linux/miscdevice.h>
#include <linux/module_compat.h>
#include "zpios-internal.h" #include "zpios-internal.h"
@ -1292,7 +1291,7 @@ static struct miscdevice zpios_misc = {
#define ZFS_DEBUG_STR "" #define ZFS_DEBUG_STR ""
#endif #endif
static int static int __init
zpios_init(void) zpios_init(void)
{ {
int error; int error;
@ -1308,7 +1307,7 @@ zpios_init(void)
return (error); return (error);
} }
static int static void __exit
zpios_fini(void) zpios_fini(void)
{ {
int error; int error;
@ -1319,12 +1318,10 @@ zpios_fini(void)
printk(KERN_INFO "ZPIOS: Unloaded module v%s-%s%s\n", printk(KERN_INFO "ZPIOS: Unloaded module v%s-%s%s\n",
ZFS_META_VERSION, ZFS_META_RELEASE, ZFS_DEBUG_STR); ZFS_META_VERSION, ZFS_META_RELEASE, ZFS_DEBUG_STR);
return (0);
} }
spl_module_init(zpios_init); module_init(zpios_init);
spl_module_exit(zpios_fini); module_exit(zpios_fini);
MODULE_AUTHOR("LLNL / Sun"); MODULE_AUTHOR("LLNL / Sun");
MODULE_DESCRIPTION("Kernel PIOS implementation"); MODULE_DESCRIPTION("Kernel PIOS implementation");