--- fuse.old/kernel/dev.c	2007-01-28 21:26:41.000000000 +0000
+++ fuse.dev/kernel/dev.c	2007-05-29 00:28:47.000000000 +0100
@@ -21,7 +21,11 @@
 MODULE_ALIAS_MISCDEV(FUSE_MINOR);
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+static struct kmem_cache *fuse_req_cachep;
+#else
 static kmem_cache_t *fuse_req_cachep;
+#endif
 
 static struct fuse_conn *fuse_get_conn(struct file *file)
 {
@@ -1093,9 +1093,13 @@
 int __init fuse_dev_init(void)
 {
 	int err = -ENOMEM;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+	fuse_req_cachep = KMEM_CACHE(fuse_req, 0);
+#else
 	fuse_req_cachep = kmem_cache_create("fuse_request",
 					    sizeof(struct fuse_req),
 					    0, 0, NULL, NULL);
+#endif
 	if (!fuse_req_cachep)
 		goto out;
 
--- fuse.old/kernel/inode.c	2007-02-04 13:34:51.000000000 +0000
+++ fuse.dev/kernel/inode.c	2007-05-29 00:26:12.000000000 +0100
@@ -24,7 +24,7 @@
 MODULE_LICENSE("GPL");
 #endif
 
-static kmem_cache_t *fuse_inode_cachep;
+static struct kmem_cache *fuse_inode_cachep;
 struct list_head fuse_conn_list;
 DEFINE_MUTEX(fuse_mutex);
 
@@ -804,14 +804,12 @@
 static decl_subsys(fuse, NULL, NULL);
 static decl_subsys(connections, NULL, NULL);
 
-static void fuse_inode_init_once(void *foo, kmem_cache_t *cachep,
+static void fuse_inode_init_once(void *foo, struct kmem_cache *cachep,
 				 unsigned long flags)
 {
 	struct inode * inode = foo;
 
-	if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) ==
-	    SLAB_CTOR_CONSTRUCTOR)
-		inode_init_once(inode);
+	inode_init_once(inode);
 }
 
 static int __init fuse_fs_init(void)
