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)])
++
Index: /server/fedora/specs/openafs.spec.patch
===================================================================
--- /server/fedora/specs/openafs.spec.patch	(revision 509)
+++ /server/fedora/specs/openafs.spec.patch	(revision 510)
@@ -1,18 +1,21 @@
 --- openafs.spec.old	2006-09-08 15:18:45.000000000 -0400
 +++ openafs.spec	2006-09-16 21:45:20.000000000 -0400
-@@ -182,6 +182,8 @@
+@@ -182,6 +182,9 @@
  BuildRequires: %{?kdepend:%{kdepend}, } pam-devel
  ExclusiveArch: %{ix86} x86_64 ia64
  
 +Patch1000: openafs-scripts.patch
++Patch1001: openafs-splice.patch
 +
  #    http://dl.openafs.org/dl/openafs/candidate/%{afsvers}/...
  Source0: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-src.tar.bz2
  Source1: http://www.openafs.org/dl/openafs/%{afsvers}/openafs-%{afsvers}-doc.tar.bz2
-@@ -556,6 +558,8 @@
+@@ -556,6 +558,10 @@
  #%setup -q -n %{srcdir}
  %setup -q -b 1 -n %{srcdir}
  
 +%patch1000 -p1 -b .scripts
++%patch1001 -p1 -b .splice
++sh regen.sh
 +
  # Patch openafs to build a kernel module named "openafs" instead of "libafs"
