diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2005-04-23 10:59:44 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2005-04-23 10:59:44 +0000 |
commit | f913745c0936646cf33fb37efad837f5b40d81a4 (patch) | |
tree | f6e9cb987a59dba1eeb35792c8d00e75ff6a4ad5 /kernel | |
parent | 0111f9dbe43a8c4ae516d3eb470186770894c5bf (diff) | |
download | libfuse-f913745c0936646cf33fb37efad837f5b40d81a4.tar.gz |
fix
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/file.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/file.c b/kernel/file.c index cf8e855..6fee83e 100644 --- a/kernel/file.c +++ b/kernel/file.c @@ -654,6 +654,17 @@ static int fuse_file_mmap(struct file *file, struct vm_area_struct *vma) } #ifdef KERNEL_2_6 +static ssize_t fuse_file_sendfile(struct file *file, loff_t *ppos, + size_t count, read_actor_t actor, + void *target) +{ + struct fuse_conn *fc = get_fuse_conn(file->f_dentry->d_inode); + if (fc->flags & FUSE_DIRECT_IO) + return -EINVAL; + else + return generic_file_sendfile(file, ppos, count, actor, target); +} + static int fuse_set_page_dirty(struct page *page) { printk("fuse_set_page_dirty: should not happen\n"); @@ -672,7 +683,7 @@ static struct file_operations fuse_file_operations = { .release = fuse_release, .fsync = fuse_fsync, #ifdef KERNEL_2_6 - .sendfile = generic_file_sendfile, + .sendfile = fuse_file_sendfile, #endif }; |