Merge branch 'for-2.6.35' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[safe/jmp/linux-2.6] / fs / jffs2 / file.c
index dcc2734..e7291c1 100644 (file)
@@ -10,7 +10,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/slab.h>
 #include <linux/fs.h>
 #include <linux/time.h>
 #include <linux/pagemap.h>
@@ -46,7 +45,7 @@ const struct file_operations jffs2_file_operations =
        .aio_read =     generic_file_aio_read,
        .write =        do_sync_write,
        .aio_write =    generic_file_aio_write,
-       .ioctl =        jffs2_ioctl,
+       .unlocked_ioctl=jffs2_ioctl,
        .mmap =         generic_file_readonly_mmap,
        .fsync =        jffs2_fsync,
        .splice_read =  generic_file_splice_read,
@@ -56,7 +55,7 @@ const struct file_operations jffs2_file_operations =
 
 const struct inode_operations jffs2_file_inode_operations =
 {
-       .permission =   jffs2_permission,
+       .check_acl =    jffs2_check_acl,
        .setattr =      jffs2_setattr,
        .setxattr =     jffs2_setxattr,
        .getxattr =     jffs2_getxattr,
@@ -99,7 +98,7 @@ static int jffs2_do_readpage_nolock (struct inode *inode, struct page *pg)
        kunmap(pg);
 
        D2(printk(KERN_DEBUG "readpage finished\n"));
-       return 0;
+       return ret;
 }
 
 int jffs2_do_readpage_unlock(struct inode *inode, struct page *pg)
@@ -115,9 +114,9 @@ static int jffs2_readpage (struct file *filp, struct page *pg)
        struct jffs2_inode_info *f = JFFS2_INODE_INFO(pg->mapping->host);
        int ret;
 
-       down(&f->sem);
+       mutex_lock(&f->sem);
        ret = jffs2_do_readpage_unlock(pg->mapping->host, pg);
-       up(&f->sem);
+       mutex_unlock(&f->sem);
        return ret;
 }
 
@@ -132,7 +131,7 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
        uint32_t pageofs = index << PAGE_CACHE_SHIFT;
        int ret = 0;
 
-       pg = __grab_cache_page(mapping, index);
+       pg = grab_cache_page_write_begin(mapping, index, flags);
        if (!pg)
                return -ENOMEM;
        *pagep = pg;
@@ -154,7 +153,7 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
                if (ret)
                        goto out_page;
 
-               down(&f->sem);
+               mutex_lock(&f->sem);
                memset(&ri, 0, sizeof(ri));
 
                ri.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK);
@@ -181,7 +180,7 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
                if (IS_ERR(fn)) {
                        ret = PTR_ERR(fn);
                        jffs2_complete_reservation(c);
-                       up(&f->sem);
+                       mutex_unlock(&f->sem);
                        goto out_page;
                }
                ret = jffs2_add_full_dnode_to_inode(c, f, fn);
@@ -195,12 +194,12 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
                        jffs2_mark_node_obsolete(c, fn->raw);
                        jffs2_free_full_dnode(fn);
                        jffs2_complete_reservation(c);
-                       up(&f->sem);
+                       mutex_unlock(&f->sem);
                        goto out_page;
                }
                jffs2_complete_reservation(c);
                inode->i_size = pageofs;
-               up(&f->sem);
+               mutex_unlock(&f->sem);
        }
 
        /*
@@ -209,9 +208,9 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,
         * case of a short-copy.
         */
        if (!PageUptodate(pg)) {
-               down(&f->sem);
+               mutex_lock(&f->sem);
                ret = jffs2_do_readpage_nolock(inode, pg);
-               up(&f->sem);
+               mutex_unlock(&f->sem);
                if (ret)
                        goto out_page;
        }