Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / fs / coda / file.c
index e6bc022..7c26424 100644 (file)
@@ -24,6 +24,8 @@
 #include <linux/coda_psdev.h>
 #include <linux/coda_proc.h>
 
+#include "coda_int.h"
+
 /* if CODA_STORE fails with EOPNOTSUPP, venus clearly doesn't support
  * CODA_STORE/CODA_RELEASE and we fall back on using the CODA_CLOSE upcall */
 static int use_coda_close;
@@ -77,14 +79,14 @@ coda_file_write(struct file *coda_file, const char __user *buf, size_t count, lo
                return -EINVAL;
 
        host_inode = host_file->f_dentry->d_inode;
-       down(&coda_inode->i_sem);
+       mutex_lock(&coda_inode->i_mutex);
 
        ret = host_file->f_op->write(host_file, buf, count, ppos);
 
        coda_inode->i_size = host_inode->i_size;
        coda_inode->i_blocks = (coda_inode->i_size + 511) >> 9;
        coda_inode->i_mtime = coda_inode->i_ctime = CURRENT_TIME_SEC;
-       up(&coda_inode->i_sem);
+       mutex_unlock(&coda_inode->i_mutex);
 
        return ret;
 }
@@ -272,9 +274,9 @@ int coda_fsync(struct file *coda_file, struct dentry *coda_dentry, int datasync)
        if (host_file->f_op && host_file->f_op->fsync) {
                host_dentry = host_file->f_dentry;
                host_inode = host_dentry->d_inode;
-               down(&host_inode->i_sem);
+               mutex_lock(&host_inode->i_mutex);
                err = host_file->f_op->fsync(host_file, host_dentry, datasync);
-               up(&host_inode->i_sem);
+               mutex_unlock(&host_inode->i_mutex);
        }
 
        if ( !err && !datasync ) {
@@ -286,7 +288,7 @@ int coda_fsync(struct file *coda_file, struct dentry *coda_dentry, int datasync)
        return err;
 }
 
-struct file_operations coda_file_operations = {
+const struct file_operations coda_file_operations = {
        .llseek         = generic_file_llseek,
        .read           = coda_file_read,
        .write          = coda_file_write,