Only in fuse-2.7.0-glfs3/kernel/: .tmp_versions Only in fuse-2.7.0-glfs3/kernel/: Makefile Only in fuse-2.7.0-glfs3/kernel/: Module.symvers Only in fuse-2.7.0-glfs3/kernel/: config.h Only in fuse-2.7.0-glfs3/kernel/: config.log Only in fuse-2.7.0-glfs3/kernel/: config.status diff -u fuse-2.7.0/kernel/dev.c fuse-2.7.0-glfs3/kernel/dev.c --- fuse-2.7.0/kernel/dev.c 2007-05-03 13:59:50.000000000 +0300 +++ fuse-2.7.0-glfs3/kernel/dev.c 2007-09-16 01:37:22.000000000 +0300 @@ -1093,9 +1093,15 @@ 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, NULL); + 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 -u fuse-2.7.0/kernel/file.c fuse-2.7.0-glfs3/kernel/file.c --- fuse-2.7.0/kernel/file.c 2007-07-02 14:32:15.000000000 +0300 +++ fuse-2.7.0-glfs3/kernel/file.c 2007-09-16 01:34:57.000000000 +0300 @@ -865,7 +865,10 @@ .release = fuse_release, .fsync = fuse_fsync, .lock = fuse_file_lock, + .flock = fuse_file_lock, +#ifndef KERNEL_2_6_23_PLUS .sendfile = generic_file_sendfile, +#endif }; static struct file_operations fuse_direct_io_file_operations = { @@ -877,6 +880,7 @@ .release = fuse_release, .fsync = fuse_fsync, .lock = fuse_file_lock, + .flock = fuse_file_lock, /* no mmap and sendfile */ }; diff -u fuse-2.7.0/kernel/fuse_i.h fuse-2.7.0-glfs3/kernel/fuse_i.h --- fuse-2.7.0/kernel/fuse_i.h 2007-07-02 14:32:15.000000000 +0300 +++ fuse-2.7.0-glfs3/kernel/fuse_i.h 2007-09-16 01:38:45.000000000 +0300 @@ -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 @@ -96,7 +99,7 @@ #endif /** Max number of pages that can be used in a single read request */ -#define FUSE_MAX_PAGES_PER_REQ 32 +#define FUSE_MAX_PAGES_PER_REQ 257 /** Maximum number of outstanding background requests */ #define FUSE_MAX_BACKGROUND 10 diff -u fuse-2.7.0/kernel/inode.c fuse-2.7.0-glfs3/kernel/inode.c --- fuse-2.7.0/kernel/inode.c 2007-07-02 14:32:15.000000000 +0300 +++ fuse-2.7.0-glfs3/kernel/inode.c 2007-09-16 01:37:31.000000000 +0300 @@ -140,7 +140,7 @@ i_size_write(inode, attr->size); spin_unlock(&fc->lock); #ifdef HAVE_I_BLKSIZE - inode->i_blksize = PAGE_CACHE_SIZE; + inode->i_blksize = 1048576; #endif inode->i_blocks = attr->blocks; inode->i_atime.tv_sec = attr->atime; @@ -344,7 +344,7 @@ char *p; memset(d, 0, sizeof(struct fuse_mount_data)); d->max_read = ~0; - d->blksize = 512; + d->blksize = 1048576; /* * For unprivileged mounts use current uid/gid. Still allow @@ -474,7 +474,7 @@ INIT_LIST_HEAD(&fc->io); INIT_LIST_HEAD(&fc->interrupts); atomic_set(&fc->num_waiting, 0); - fc->bdi.ra_pages = (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE; + fc->bdi.ra_pages = 256; fc->bdi.unplug_io_fn = default_unplug_io_fn; fc->reqctr = 0; fc->blocked = 1; @@ -673,8 +673,8 @@ return -EINVAL; #endif } else { - sb->s_blocksize = PAGE_CACHE_SIZE; - sb->s_blocksize_bits = PAGE_CACHE_SHIFT; + sb->s_blocksize = 1048576; + sb->s_blocksize_bits = 20; } sb->s_magic = FUSE_SUPER_MAGIC; sb->s_op = &fuse_super_operations; @@ -861,10 +861,18 @@ 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, NULL); + 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;