From 5cbd57fa91076a8001dff0fb6e864147d3a7c286 Mon Sep 17 00:00:00 2001 From: behlendo Date: Fri, 13 Jun 2008 23:56:26 +0000 Subject: [PATCH] Fix minor chaos/fc9 kernel discrepencies in build git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@133 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c --- include/sys/kmem.h | 8 ++++++++ modules/spl/spl-kmem.c | 20 +++++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/include/sys/kmem.h b/include/sys/kmem.h index 082db032a..e3810eb2f 100644 --- a/include/sys/kmem.h +++ b/include/sys/kmem.h @@ -453,6 +453,14 @@ void spl_kmem_fini(void); #define kmem_cache_reap_now(skc) spl_kmem_cache_reap_now(skc) #define kmem_reap() spl_kmem_reap() +#ifdef HAVE_KMEM_CACHE_CREATE_DTOR +#define __kmem_cache_create(name, size, align, flags, ctor, dtor) \ + kmem_cache_create(name, size, align, flags, ctor, dtor) +#else +#define __kmem_cache_create(name, size, align, flags, ctor, dtor) \ + kmem_cache_create(name, size, align, flags, ctor) +#endif /* HAVE_KMEM_CACHE_CREATE_DTOR */ + #ifdef __cplusplus } #endif diff --git a/modules/spl/spl-kmem.c b/modules/spl/spl-kmem.c index e52f19935..24d53a6c2 100644 --- a/modules/spl/spl-kmem.c +++ b/modules/spl/spl-kmem.c @@ -427,6 +427,11 @@ spl_hash_ptr(void *ptr, unsigned int bits) return hash_long((unsigned long)ptr >> PAGE_SHIFT, bits); } +#ifndef list_first_entry +#define list_first_entry(ptr, type, member) \ + list_entry((ptr)->next, type, member) +#endif + void * spl_kmem_cache_alloc(spl_kmem_cache_t *skc, int flags) { @@ -640,20 +645,21 @@ spl_kmem_init(void) spl_slab_cache = NULL; spl_obj_cache = NULL; - spl_slab_cache = kmem_cache_create("spl_slab_cache", - sizeof(spl_kmem_slab_t), - 0, 0, NULL); + spl_slab_cache = __kmem_cache_create("spl_slab_cache", + sizeof(spl_kmem_slab_t), + 0, 0, NULL, NULL); if (spl_slab_cache == NULL) GOTO(out_cache, rc = -ENOMEM); - spl_obj_cache = kmem_cache_create("spl_obj_cache", - sizeof(spl_kmem_obj_t), - 0, 0, NULL); + spl_obj_cache = __kmem_cache_create("spl_obj_cache", + sizeof(spl_kmem_obj_t), + 0, 0, NULL, NULL); if (spl_obj_cache == NULL) GOTO(out_cache, rc = -ENOMEM); #ifdef HAVE_SET_SHRINKER - spl_kmem_cache_shrinker = set_shrinker(KMC_DEFAULT_SEEKS, shrinker); + spl_kmem_cache_shrinker = set_shrinker(KMC_DEFAULT_SEEKS, + kmem_cache_generic_shrinker); if (spl_kmem_cache_shrinker == NULL) GOTO(out_cache, rc = -ENOMEM); #else