From fb6b22cf77039962f22f462ee602f0e4a8153817 Mon Sep 17 00:00:00 2001 From: Marc Dionne Date: Fri, 5 Nov 2010 17:30:02 -0400 Subject: [PATCH] Linux: define llseek operations With kernel 2.6.37 it is now mandatory to define the llseek operation for files and directories. If these are not defined, no_llseek is called, and any attempt to seek returns ESPIPE. Most file systems use generic_file_llseek, but it seems safer to use default_llseek which is what the vfs used to call for us by default. In 2.6.37 these two functions are actually functionally identical. Change-Id: I7ad736e3953c4feaa51afb9f7ff2760c3140373f Reviewed-on: http://gerrit.openafs.org/3292 Reviewed-by: Derrick Brashear Tested-by: BuildBot --- src/afs/LINUX/osi_vnodeops.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index c9d67097ed..b4794756ea 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -659,6 +659,7 @@ struct file_operations afs_dir_fops = { #endif .open = afs_linux_open, .release = afs_linux_release, + .llseek = default_llseek, }; struct file_operations afs_file_fops = { @@ -692,6 +693,7 @@ struct file_operations afs_file_fops = { #ifdef STRUCT_FILE_OPERATIONS_HAS_FLOCK .flock = afs_linux_flock, #endif + .llseek = default_llseek, };