--- 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 ], +[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)]) +