From 7d0b3da4b9b8b70a94c674edb3b5cc68044b08ca Mon Sep 17 00:00:00 2001 From: shadow Date: Wed, 21 Nov 2007 12:11:13 +0000 Subject: [PATCH] fix building problem with 2.6.22 kernel. b=14255 i=adilger --- lnet/autoconf/lustre-lnet.m4 | 20 +++++++++++++++++++- lnet/include/libcfs/linux/linux-prim.h | 2 ++ lnet/libcfs/linux/linux-mem.c | 4 ++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/lnet/autoconf/lustre-lnet.m4 b/lnet/autoconf/lustre-lnet.m4 index 5c2dc39..434cb1b 100644 --- a/lnet/autoconf/lustre-lnet.m4 +++ b/lnet/autoconf/lustre-lnet.m4 @@ -1140,7 +1140,7 @@ EXTRA_KCFLAGS="-Werror" LB_LINUX_TRY_COMPILE([ #include ],[ - struct kmem_cache_s *cachep = NULL; + kmem_cache_t *cachep = NULL; kmem_cache_free(cachep, NULL); @@ -1153,6 +1153,22 @@ LB_LINUX_TRY_COMPILE([ ]) EXTRA_KCFLAGS="$tmp_flags" ]) +# 2.6.23 lost dtor argument +AC_DEFUN([LN_KMEM_CACHE_CREATE_DTOR], +[AC_MSG_CHECKING([check kmem_cache_create has dtor argument]) +LB_LINUX_TRY_COMPILE([ + #include +],[ + struct kmem_cache_s *cachep = NULL; + 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 argument]) +],[ + AC_MSG_RESULT(NO) +]) +]) # # LN_PROG_LINUX @@ -1191,6 +1207,8 @@ LN_3ARGS_INIT_WORK # 2.6.21 LN_2ARGS_REGISTER_SYSCTL LN_KMEM_CACHE_S +# 2.6.23 +LN_KMEM_CACHE_CREATE_DTOR ]) # diff --git a/lnet/include/libcfs/linux/linux-prim.h b/lnet/include/libcfs/linux/linux-prim.h index 72af0ac..a8153dd 100644 --- a/lnet/include/libcfs/linux/linux-prim.h +++ b/lnet/include/libcfs/linux/linux-prim.h @@ -39,6 +39,8 @@ #include #include #include +#include +#include #include #include diff --git a/lnet/libcfs/linux/linux-mem.c b/lnet/libcfs/linux/linux-mem.c index fc3896a..30ecf6a 100644 --- a/lnet/libcfs/linux/linux-mem.c +++ b/lnet/libcfs/linux/linux-mem.c @@ -103,7 +103,11 @@ cfs_mem_cache_t * cfs_mem_cache_create (const char *name, size_t size, size_t offset, unsigned long flags) { +#ifdef HAVE_KMEM_CACHE_CREATE_DTOR return kmem_cache_create(name, size, offset, flags, NULL, NULL); +#else + return kmem_cache_create(name, size, offset, flags, NULL); +#endif } int -- 1.8.3.1