X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=fs%2Fcoda%2Ffile.c;h=4c813f2cdc52dcaa7074322ffaeb11d34e4c8726;hb=01a05b337a5b647909e1d6670f57e7202318a5fb;hp=6a347fbc998a4cc3a23f60d3d2e91854db4206b2;hpb=4c728ef583b3d82266584da5cb068294c09df31e;p=safe%2Fjmp%2Flinux-2.6 diff --git a/fs/coda/file.c b/fs/coda/file.c index 6a347fb..4c813f2 100644 --- a/fs/coda/file.c +++ b/fs/coda/file.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -47,6 +48,8 @@ coda_file_splice_read(struct file *coda_file, loff_t *ppos, struct pipe_inode_info *pipe, size_t count, unsigned int flags) { + ssize_t (*splice_read)(struct file *, loff_t *, + struct pipe_inode_info *, size_t, unsigned int); struct coda_file_info *cfi; struct file *host_file; @@ -54,10 +57,11 @@ coda_file_splice_read(struct file *coda_file, loff_t *ppos, BUG_ON(!cfi || cfi->cfi_magic != CODA_MAGIC); host_file = cfi->cfi_container; - if (!host_file->f_op || !host_file->f_op->splice_read) - return -EINVAL; + splice_read = host_file->f_op->splice_read; + if (!splice_read) + splice_read = default_file_splice_read; - return host_file->f_op->splice_read(host_file, ppos, pipe, count,flags); + return splice_read(host_file, ppos, pipe, count, flags); } static ssize_t