From: Jan Harkes <jaharkes@cs.cmu.edu>

Add a wrapper for sendfile support in Coda.

Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/fs/coda/file.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+)

diff -puN fs/coda/file.c~coda-add-sendfile-wrapper fs/coda/file.c
--- 25/fs/coda/file.c~coda-add-sendfile-wrapper	Wed Sep  1 15:42:18 2004
+++ 25-akpm/fs/coda/file.c	Wed Sep  1 15:42:18 2004
@@ -45,6 +45,23 @@ coda_file_read(struct file *coda_file, c
 }
 
 static ssize_t
+coda_file_sendfile(struct file *coda_file, loff_t *ppos, size_t count,
+		   read_actor_t actor, void __user *target)
+{
+	struct coda_file_info *cfi;
+	struct file *host_file;
+
+	cfi = CODA_FTOC(coda_file);
+	BUG_ON(!cfi || cfi->cfi_magic != CODA_MAGIC);
+	host_file = cfi->cfi_container;
+
+	if (!host_file->f_op || !host_file->f_op->sendfile)
+		return -EINVAL;
+
+	return host_file->f_op->sendfile(host_file, ppos, count, actor, target);
+}
+
+static ssize_t
 coda_file_write(struct file *coda_file, const char __user *buf, size_t count, loff_t *ppos)
 {
 	struct inode *host_inode, *coda_inode = coda_file->f_dentry->d_inode;
@@ -278,5 +295,6 @@ struct file_operations coda_file_operati
 	.flush		= coda_flush,
 	.release	= coda_release,
 	.fsync		= coda_fsync,
+	.sendfile	= coda_file_sendfile,
 };
 
_