Fix kernel module compilation for 2.6.23
authorMiklos Szeredi <miklos@szeredi.hu>
Tue, 18 Sep 2007 13:00:33 +0000 (13:00 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Tue, 18 Sep 2007 13:00:33 +0000 (13:00 +0000)
ChangeLog
kernel/dev.c
kernel/file.c
kernel/fuse_i.h
kernel/inode.c

index ffa0e213ec560824b2563e1aff113db9ad72c8c8..96e55222fbafee14105eaeafbb5f5b4df8d12bb6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,9 @@
        * Add missing context initialization in fuse_fs_chmod().  Bug
        found by "iohead"
 
+       * Fix kernel module compilation for 2.6.23.  Based on patch by
+       Marian Marinov
+
 2007-09-04  Philippe Elie  <phil.el@wanadoo.fr>
 
        * lib/fuse_lowlevel.c: fix a fuse_req leak in do_forget()
index aaef08239be308f35b26e8a108c73ba8ecfe26d2..60a6bbf5b3fe813041981e6fd4f48b897e6878e6 100644 (file)
@@ -1093,9 +1093,15 @@ static struct miscdevice fuse_miscdevice = {
 int __init fuse_dev_init(void)
 {
        int err = -ENOMEM;
+#ifdef KERNEL_2_6_23_PLUS
+       fuse_req_cachep = kmem_cache_create("fuse_request",
+                                           sizeof(struct fuse_req),
+                                           0, 0, NULL);
+#else
        fuse_req_cachep = kmem_cache_create("fuse_request",
                                            sizeof(struct fuse_req),
                                            0, 0, NULL, NULL);
+#endif
        if (!fuse_req_cachep)
                goto out;
 
index dd198d004db0eeab9d3fd307054eb18a54ee2329..16a2d026b358b9ffeef77d8e86af79e4f9d14637 100644 (file)
@@ -865,7 +865,11 @@ static struct file_operations fuse_file_operations = {
        .release        = fuse_release,
        .fsync          = fuse_fsync,
        .lock           = fuse_file_lock,
+#ifdef KERNEL_2_6_23_PLUS
+       .splice_read    = generic_file_splice_read,
+#else
        .sendfile       = generic_file_sendfile,
+#endif
 };
 
 static struct file_operations fuse_direct_io_file_operations = {
index d2261646f25359edb51ebd1a72ea122cc11f06c0..f9803b4e009df886bd47ea92b144f507e12b106c 100644 (file)
@@ -45,6 +45,9 @@
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
 #  define KERNEL_2_6_22_PLUS
 #endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
+#  define KERNEL_2_6_23_PLUS
+#endif
 
 #if defined(__arm__) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
 #define DCACHE_BUG
index a072f95c53c2133288a76fdf92766c438a2d6a9f..f52ee8b15699708304dfcfe60e1025e4ca609a55 100644 (file)
@@ -861,10 +861,18 @@ static int __init fuse_fs_init(void)
        if (err)
                goto out_unreg;
 
+#ifdef KERNEL_2_6_23_PLUS
+       fuse_inode_cachep = kmem_cache_create("fuse_inode",
+                                             sizeof(struct fuse_inode),
+                                             0, SLAB_HWCACHE_ALIGN,
+                                             fuse_inode_init_once);
+#else
        fuse_inode_cachep = kmem_cache_create("fuse_inode",
                                              sizeof(struct fuse_inode),
                                              0, SLAB_HWCACHE_ALIGN,
                                              fuse_inode_init_once, NULL);
+#endif
+
        err = -ENOMEM;
        if (!fuse_inode_cachep)
                goto out_unreg2;