]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/coda/file.c
Merge branch 'splice-2.6.23' of git://git.kernel.dk/data/git/linux-2.6-block
[karo-tx-linux.git] / fs / coda / file.c
index dbfbcfa5b3c064855f377949a9470bd6aab63a2e..99dbe866816d277ba5c90ccbf04ff92567725bee 100644 (file)
@@ -47,8 +47,9 @@ coda_file_read(struct file *coda_file, char __user *buf, size_t count, loff_t *p
 }
 
 static ssize_t
-coda_file_sendfile(struct file *coda_file, loff_t *ppos, size_t count,
-                  read_actor_t actor, void *target)
+coda_file_splice_read(struct file *coda_file, loff_t *ppos,
+                     struct pipe_inode_info *pipe, size_t count,
+                     unsigned int flags)
 {
        struct coda_file_info *cfi;
        struct file *host_file;
@@ -57,16 +58,16 @@ coda_file_sendfile(struct file *coda_file, loff_t *ppos, size_t count,
        BUG_ON(!cfi || cfi->cfi_magic != CODA_MAGIC);
        host_file = cfi->cfi_container;
 
-       if (!host_file->f_op || !host_file->f_op->sendfile)
+       if (!host_file->f_op || !host_file->f_op->splice_read)
                return -EINVAL;
 
-       return host_file->f_op->sendfile(host_file, ppos, count, actor, target);
+       return host_file->f_op->splice_read(host_file, ppos, pipe, count,flags);
 }
 
 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;
+       struct inode *host_inode, *coda_inode = coda_file->f_path.dentry->d_inode;
        struct coda_file_info *cfi;
        struct file *host_file;
        ssize_t ret;
@@ -78,7 +79,7 @@ coda_file_write(struct file *coda_file, const char __user *buf, size_t count, lo
        if (!host_file->f_op || !host_file->f_op->write)
                return -EINVAL;
 
-       host_inode = host_file->f_dentry->d_inode;
+       host_inode = host_file->f_path.dentry->d_inode;
        mutex_lock(&coda_inode->i_mutex);
 
        ret = host_file->f_op->write(host_file, buf, count, ppos);
@@ -106,8 +107,8 @@ coda_file_mmap(struct file *coda_file, struct vm_area_struct *vma)
        if (!host_file->f_op || !host_file->f_op->mmap)
                return -ENODEV;
 
-       coda_inode = coda_file->f_dentry->d_inode;
-       host_inode = host_file->f_dentry->d_inode;
+       coda_inode = coda_file->f_path.dentry->d_inode;
+       host_inode = host_file->f_path.dentry->d_inode;
        coda_file->f_mapping = host_file->f_mapping;
        if (coda_inode->i_mapping == &coda_inode->i_data)
                coda_inode->i_mapping = host_inode->i_mapping;
@@ -190,7 +191,7 @@ int coda_flush(struct file *coda_file, fl_owner_t id)
        cfi = CODA_FTOC(coda_file);
        BUG_ON(!cfi || cfi->cfi_magic != CODA_MAGIC);
 
-       coda_inode = coda_file->f_dentry->d_inode;
+       coda_inode = coda_file->f_path.dentry->d_inode;
 
        err = venus_store(coda_inode->i_sb, coda_i2f(coda_inode), coda_flags,
                          coda_file->f_uid);
@@ -233,7 +234,7 @@ int coda_release(struct inode *coda_inode, struct file *coda_file)
                err = venus_close(coda_inode->i_sb, coda_i2f(coda_inode),
                                  coda_flags, coda_file->f_uid);
 
-       host_inode = cfi->cfi_container->f_dentry->d_inode;
+       host_inode = cfi->cfi_container->f_path.dentry->d_inode;
        cii = ITOC(coda_inode);
 
        /* did we mmap this file? */
@@ -270,7 +271,7 @@ int coda_fsync(struct file *coda_file, struct dentry *coda_dentry, int datasync)
        coda_vfs_stat.fsync++;
 
        if (host_file->f_op && host_file->f_op->fsync) {
-               host_dentry = host_file->f_dentry;
+               host_dentry = host_file->f_path.dentry;
                host_inode = host_dentry->d_inode;
                mutex_lock(&host_inode->i_mutex);
                err = host_file->f_op->fsync(host_file, host_dentry, datasync);
@@ -295,6 +296,6 @@ const struct file_operations coda_file_operations = {
        .flush          = coda_flush,
        .release        = coda_release,
        .fsync          = coda_fsync,
-       .sendfile       = coda_file_sendfile,
+       .splice_read    = coda_file_splice_read,
 };