From: Miklos Szeredi Date: Tue, 18 Sep 2007 13:00:33 +0000 (+0000) Subject: Fix kernel module compilation for 2.6.23 X-Git-Tag: fuse_2_7_1~7 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=68a9657062996e40c6d59746dd760374403e07e4;p=qemu-gpiodev%2Flibfuse.git Fix kernel module compilation for 2.6.23 --- diff --git a/ChangeLog b/ChangeLog index ffa0e21..96e5522 100644 --- 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 * lib/fuse_lowlevel.c: fix a fuse_req leak in do_forget() diff --git a/kernel/dev.c b/kernel/dev.c index aaef082..60a6bbf 100644 --- a/kernel/dev.c +++ b/kernel/dev.c @@ -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; diff --git a/kernel/file.c b/kernel/file.c index dd198d0..16a2d02 100644 --- a/kernel/file.c +++ b/kernel/file.c @@ -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 = { diff --git a/kernel/fuse_i.h b/kernel/fuse_i.h index d226164..f9803b4 100644 --- a/kernel/fuse_i.h +++ b/kernel/fuse_i.h @@ -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 diff --git a/kernel/inode.c b/kernel/inode.c index a072f95..f52ee8b 100644 --- a/kernel/inode.c +++ b/kernel/inode.c @@ -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;