Index: server/common/patches/openafs-splice.patch
===================================================================
--- server/common/patches/openafs-splice.patch	(revision 510)
+++ server/common/patches/openafs-splice.patch	(revision 510)
@@ -0,0 +1,51 @@
+--- openafs.orig/acinclude.m4	15 Oct 2007 12:42:20 -0000	1.114.2.83
++++ openafs/acinclude.m4	6 Nov 2007 04:25:41 -0000
+@@ -614,6 +614,7 @@
+ 	  	 LINUX_AOP_WRITEBACK_CONTROL
+ 		 LINUX_FS_STRUCT_FOP_HAS_FLOCK
+ 		 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
++		 LINUX_FS_STRUCT_FOP_HAS_SPLICE
+ 		 LINUX_KERNEL_LINUX_SYSCALL_H
+ 		 LINUX_KERNEL_LINUX_SEQ_FILE_H
+ 		 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
+@@ -861,6 +862,9 @@
+ 		 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
+ 		  AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
+ 		 fi
++		 if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
++		  AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
++		 fi
+ 		 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
+ 		  AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
+ 		 fi
+--- openafs.orig/src/afs/LINUX/osi_vnodeops.c	1 Nov 2007 03:33:14 -0000	1.81.2.58
++++ openafs/src/afs/LINUX/osi_vnodeops.c	6 Nov 2007 04:25:42 -0000
+@@ -643,6 +643,10 @@
+ #if defined(AFS_LINUX26_ENV) && defined(STRUCT_FILE_OPERATIONS_HAS_SENDFILE)
+   .sendfile =   generic_file_sendfile,
+ #endif
++#if defined(AFS_LINUX26_ENV) && defined(STRUCT_FILE_OPERATIONS_HAS_SPLICE)
++  .splice_write = generic_file_splice_write,
++  .splice_read = generic_file_splice_read,
++#endif
+   .release =	afs_linux_release,
+   .fsync =	afs_linux_fsync,
+   .lock =	afs_linux_lock,
+--- openafs.orig/src/cf/linux-test4.m4	15 Oct 2007 12:42:29 -0000	1.20.2.34
++++ openafs/src/cf/linux-test4.m4	6 Nov 2007 04:25:42 -0000
+@@ -894,3 +894,15 @@
+       ac_cv_linux_fs_struct_fop_has_sendfile=no)])
+   AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_sendfile)])
+ 
++AC_DEFUN([LINUX_FS_STRUCT_FOP_HAS_SPLICE], [
++  AC_MSG_CHECKING([for splice_write and splice_read in struct file_operations])
++  AC_CACHE_VAL([ac_cv_linux_fs_struct_fop_has_splice], [
++    AC_TRY_KBUILD(
++[#include <linux/fs.h>],
++[struct file_operations _fop;
++_fop.splice_write(NULL, NULL, NULL, 0, 0);
++_fop.splice_read(NULL, NULL, NULL, 0, 0);],
++      ac_cv_linux_fs_struct_fop_has_splice=yes,
++      ac_cv_linux_fs_struct_fop_has_splice=no)])
++  AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_splice)])
++
