source: server/common/patches/openafs-splice.patch @ 846

Last change on this file since 846 was 510, checked in by andersk, 17 years ago
Implement splice_write and splice_read so that sendfile() works on kernel 2.6.23. (Submitted upstream.)
File size: 2.3 KB
RevLine 
[510]1--- openafs.orig/acinclude.m4   15 Oct 2007 12:42:20 -0000      1.114.2.83
2+++ openafs/acinclude.m4        6 Nov 2007 04:25:41 -0000
3@@ -614,6 +614,7 @@
4                 LINUX_AOP_WRITEBACK_CONTROL
5                 LINUX_FS_STRUCT_FOP_HAS_FLOCK
6                 LINUX_FS_STRUCT_FOP_HAS_SENDFILE
7+                LINUX_FS_STRUCT_FOP_HAS_SPLICE
8                 LINUX_KERNEL_LINUX_SYSCALL_H
9                 LINUX_KERNEL_LINUX_SEQ_FILE_H
10                 LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
11@@ -861,6 +862,9 @@
12                 if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
13                  AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
14                 fi
15+                if test "x$ac_cv_linux_fs_struct_fop_has_splice" = "xyes" ; then
16+                 AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SPLICE, 1, [define if your struct file_operations has splice_write and splice_read])
17+                fi
18                 if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
19                  AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
20                 fi
21--- openafs.orig/src/afs/LINUX/osi_vnodeops.c   1 Nov 2007 03:33:14 -0000       1.81.2.58
22+++ openafs/src/afs/LINUX/osi_vnodeops.c        6 Nov 2007 04:25:42 -0000
23@@ -643,6 +643,10 @@
24 #if defined(AFS_LINUX26_ENV) && defined(STRUCT_FILE_OPERATIONS_HAS_SENDFILE)
25   .sendfile =   generic_file_sendfile,
26 #endif
27+#if defined(AFS_LINUX26_ENV) && defined(STRUCT_FILE_OPERATIONS_HAS_SPLICE)
28+  .splice_write = generic_file_splice_write,
29+  .splice_read = generic_file_splice_read,
30+#endif
31   .release =   afs_linux_release,
32   .fsync =     afs_linux_fsync,
33   .lock =      afs_linux_lock,
34--- openafs.orig/src/cf/linux-test4.m4  15 Oct 2007 12:42:29 -0000      1.20.2.34
35+++ openafs/src/cf/linux-test4.m4       6 Nov 2007 04:25:42 -0000
36@@ -894,3 +894,15 @@
37       ac_cv_linux_fs_struct_fop_has_sendfile=no)])
38   AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_sendfile)])
39 
40+AC_DEFUN([LINUX_FS_STRUCT_FOP_HAS_SPLICE], [
41+  AC_MSG_CHECKING([for splice_write and splice_read in struct file_operations])
42+  AC_CACHE_VAL([ac_cv_linux_fs_struct_fop_has_splice], [
43+    AC_TRY_KBUILD(
44+[#include <linux/fs.h>],
45+[struct file_operations _fop;
46+_fop.splice_write(NULL, NULL, NULL, 0, 0);
47+_fop.splice_read(NULL, NULL, NULL, 0, 0);],
48+      ac_cv_linux_fs_struct_fop_has_splice=yes,
49+      ac_cv_linux_fs_struct_fop_has_splice=no)])
50+  AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_splice)])
51+
Note: See TracBrowser for help on using the repository browser.