BKL: Remove BKL from ncpfs
[pandora-kernel.git] / fs / ncpfs / file.c
index 3639cc5..6c754f7 100644 (file)
@@ -113,9 +113,6 @@ ncp_file_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
        DPRINTK("ncp_file_read: enter %s/%s\n",
                dentry->d_parent->d_name.name, dentry->d_name.name);
 
-       if (!ncp_conn_valid(NCP_SERVER(inode)))
-               return -EIO;
-
        pos = *ppos;
 
        if ((ssize_t) count < 0) {
@@ -192,13 +189,11 @@ ncp_file_write(struct file *file, const char __user *buf, size_t count, loff_t *
 
        DPRINTK("ncp_file_write: enter %s/%s\n",
                dentry->d_parent->d_name.name, dentry->d_name.name);
-       if (!ncp_conn_valid(NCP_SERVER(inode)))
-               return -EIO;
        if ((ssize_t) count < 0)
                return -EINVAL;
        pos = *ppos;
        if (file->f_flags & O_APPEND) {
-               pos = inode->i_size;
+               pos = i_size_read(inode);
        }
 
        if (pos + count > MAX_NON_LFS && !(file->f_flags&O_LARGEFILE)) {
@@ -264,8 +259,11 @@ ncp_file_write(struct file *file, const char __user *buf, size_t count, loff_t *
 
        *ppos = pos;
 
-       if (pos > inode->i_size) {
-               inode->i_size = pos;
+       if (pos > i_size_read(inode)) {
+               mutex_lock(&inode->i_mutex);
+               if (pos > i_size_read(inode))
+                       i_size_write(inode, pos);
+               mutex_unlock(&inode->i_mutex);
        }
        DPRINTK("ncp_file_write: exit %s/%s\n",
                dentry->d_parent->d_name.name, dentry->d_name.name);
@@ -281,18 +279,9 @@ static int ncp_release(struct inode *inode, struct file *file) {
        return 0;
 }
 
-static loff_t ncp_remote_llseek(struct file *file, loff_t offset, int origin)
-{
-       loff_t ret;
-       lock_kernel();
-       ret = generic_file_llseek_unlocked(file, offset, origin);
-       unlock_kernel();
-       return ret;
-}
-
 const struct file_operations ncp_file_operations =
 {
-       .llseek         = ncp_remote_llseek,
+       .llseek         = generic_file_llseek,
        .read           = ncp_file_read,
        .write          = ncp_file_write,
        .unlocked_ioctl = ncp_ioctl,