Whamcloud - gitweb
fix building problem with 2.6.22 kernel.
authorshadow <shadow>
Wed, 21 Nov 2007 12:11:13 +0000 (12:11 +0000)
committershadow <shadow>
Wed, 21 Nov 2007 12:11:13 +0000 (12:11 +0000)
b=14255
i=adilger

lnet/autoconf/lustre-lnet.m4
lnet/include/libcfs/linux/linux-prim.h
lnet/libcfs/linux/linux-mem.c

index 5c2dc39..434cb1b 100644 (file)
@@ -1140,7 +1140,7 @@ EXTRA_KCFLAGS="-Werror"
 LB_LINUX_TRY_COMPILE([
         #include <linux/slab.h>
 ],[
-       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 <linux/slab.h>
+],[
+        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
 ])
 
 #
index 72af0ac..a8153dd 100644 (file)
@@ -39,6 +39,8 @@
 #include <linux/proc_fs.h>
 #include <linux/mm.h>
 #include <linux/timer.h>
+#include <linux/signal.h>
+#include <linux/sched.h>
 
 #include <linux/miscdevice.h>
 #include <libcfs/linux/portals_compat25.h>
index fc3896a..30ecf6a 100644 (file)
@@ -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