* 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()
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;
.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 = {
#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
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;