diff --git a/autoconf/spl-build.m4 b/autoconf/spl-build.m4 index d77c7aa80..2f09fa87e 100644 --- a/autoconf/spl-build.m4 +++ b/autoconf/spl-build.m4 @@ -308,44 +308,6 @@ AC_DEFUN([SPL_AC_TYPE_UINTPTR_T], ]) ]) -dnl # -dnl # 2.6.x API change -dnl # check if kmem_cache_t typedef is defined -dnl # -AC_DEFUN([SPL_AC_TYPE_KMEM_CACHE_T], - [AC_MSG_CHECKING([whether kernel defines kmem_cache_t]) - SPL_LINUX_TRY_COMPILE([ - #include - ],[ - kmem_cache_t *cache; - ],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_KMEM_CACHE_T, 1, - [kernel defines kmem_cache_t]) - ],[ - AC_MSG_RESULT([no]) - ]) -]) - -dnl # -dnl # 2.6.19 API change -dnl # kmem_cache_destroy() return void instead of int -dnl # -AC_DEFUN([SPL_AC_KMEM_CACHE_DESTROY_INT], - [AC_MSG_CHECKING([whether kmem_cache_destroy() returns int]) - SPL_LINUX_TRY_COMPILE([ - #include - ],[ - int i = kmem_cache_destroy(NULL); - ],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_KMEM_CACHE_DESTROY_INT, 1, - [kmem_cache_destroy() returns int]) - ],[ - AC_MSG_RESULT(no) - ]) -]) - dnl # dnl # 2.6.19 API change dnl # panic_notifier_list use atomic_notifier operations @@ -407,77 +369,6 @@ AC_DEFUN([SPL_AC_2ARGS_REGISTER_SYSCTL], ]) ]) -dnl # -dnl # 2.6.21 API change -dnl # Use struct kmem_cache for missing kmem_cache_t -dnl # -AC_DEFUN([SPL_AC_KMEM_CACHE_T], [ - AC_MSG_CHECKING([whether kernel has kmem_cache_t]) - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-Werror" - SPL_LINUX_TRY_COMPILE([ - #include - ],[ - kmem_cache_t *cachep = NULL; - kmem_cache_free(cachep, NULL); - - ],[ - AC_MSG_RESULT([yes]) - AC_DEFINE(HAVE_KMEM_CACHE_T, 1, - [kernel has struct kmem_cache_t]) - ],[ - AC_MSG_RESULT([no]) - ]) - EXTRA_KCFLAGS="$tmp_flags" -]) - -dnl # -dnl # 2.6.23 API change -dnl # Slab no longer accepts a dtor argument -dnl # -AC_DEFUN([SPL_AC_KMEM_CACHE_CREATE_DTOR], - [AC_MSG_CHECKING([whether kmem_cache_create() has dtor arg]) - SPL_LINUX_TRY_COMPILE([ - #include - ],[ - kmem_cache_create(NULL, 0, 0, 0, NULL, NULL); - ],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_KMEM_CACHE_CREATE_DTOR, 1, - [kmem_cache_create() has dtor arg]) - ],[ - AC_MSG_RESULT(no) - ]) -]) - -dnl # -dnl # 2.6.x API change -dnl # Slab ctor no longer takes 3 args -dnl # -AC_DEFUN([SPL_AC_3ARG_KMEM_CACHE_CREATE_CTOR], - [AC_MSG_CHECKING([whether slab ctor wants 3 args]) - tmp_flags="$EXTRA_KCFLAGS" - EXTRA_KCFLAGS="-Werror" - SPL_LINUX_TRY_COMPILE([ - #include - ],[ - void (*ctor)(void *,struct kmem_cache *,unsigned long) = NULL; - - #ifdef HAVE_KMEM_CACHE_CREATE_DTOR - kmem_cache_create(NULL, 0, 0, 0, ctor, NULL); - #else - kmem_cache_create(NULL, 0, 0, 0, ctor); - #endif - ],[ - AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_3ARG_KMEM_CACHE_CREATE_CTOR, 1, - [slab ctor wants 3 args]) - ],[ - AC_MSG_RESULT(no) - ]) - EXTRA_KCFLAGS="$tmp_flags" -]) - dnl # dnl # 2.6.x API change dnl # Old set_shrinker API replaced with register_shrinker diff --git a/configure.ac b/configure.ac index 17a782a2b..c4d424ea0 100644 --- a/configure.ac +++ b/configure.ac @@ -44,14 +44,9 @@ SPL_AC_DEBUG_MUTEX SPL_AC_DEBUG_KSTAT SPL_AC_DEBUG_CALLB SPL_AC_TYPE_UINTPTR_T -SPL_AC_TYPE_KMEM_CACHE_T -SPL_AC_KMEM_CACHE_DESTROY_INT SPL_AC_ATOMIC_PANIC_NOTIFIER SPL_AC_3ARGS_INIT_WORK SPL_AC_2ARGS_REGISTER_SYSCTL -SPL_AC_KMEM_CACHE_T -SPL_AC_KMEM_CACHE_CREATE_DTOR -SPL_AC_3ARG_KMEM_CACHE_CREATE_CTOR SPL_AC_SET_SHRINKER SPL_AC_PATH_IN_NAMEIDATA SPL_AC_TASK_CURR diff --git a/include/sys/kmem.h b/include/sys/kmem.h index 9397caa0a..dd1514fb9 100644 --- a/include/sys/kmem.h +++ b/include/sys/kmem.h @@ -529,6 +529,7 @@ typedef struct spl_kmem_cache { uint64_t skc_obj_alloc; /* Obj alloc current */ uint64_t skc_obj_max; /* Obj max historic */ } spl_kmem_cache_t; +#define kmem_cache_t spl_kmem_cache_t extern spl_kmem_cache_t * spl_kmem_cache_create(char *name, size_t size, size_t align, diff --git a/include/sys/types.h b/include/sys/types.h index c60bfb208..eba23eae0 100644 --- a/include/sys/types.h +++ b/include/sys/types.h @@ -13,11 +13,6 @@ extern "C" { typedef unsigned long uintptr_t; #endif -#ifndef HAVE_KMEM_CACHE_T -typedef struct kmem_cache kmem_cache_t; -#endif -#define kmem_cache_t spl_kmem_cache_t - typedef enum { B_FALSE=0, B_TRUE=1 } boolean_t; typedef unsigned long intptr_t; typedef unsigned long ulong_t; diff --git a/modules/spl/spl-vnode.c b/modules/spl/spl-vnode.c index 678d94682..bf9b3e97c 100644 --- a/modules/spl/spl-vnode.c +++ b/modules/spl/spl-vnode.c @@ -37,8 +37,8 @@ void *rootdir = NULL; EXPORT_SYMBOL(rootdir); -static kmem_cache_t *vn_cache; -static kmem_cache_t *vn_file_cache; +static spl_kmem_cache_t *vn_cache; +static spl_kmem_cache_t *vn_file_cache; static spinlock_t vn_file_lock = SPIN_LOCK_UNLOCKED; static LIST_HEAD(vn_file_list);