Merge tag 'vfs-timespec64' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd...
[platform/kernel/linux-rpi.git] / fs / ubifs / file.c
index ddb2521..fd7eb6f 100644 (file)
@@ -1514,7 +1514,7 @@ static int ubifs_releasepage(struct page *page, gfp_t unused_gfp_flags)
  * mmap()d file has taken write protection fault and is being made writable.
  * UBIFS must ensure page is budgeted for.
  */
-static int ubifs_vm_page_mkwrite(struct vm_fault *vmf)
+static vm_fault_t ubifs_vm_page_mkwrite(struct vm_fault *vmf)
 {
        struct page *page = vmf->page;
        struct inode *inode = file_inode(vmf->vma->vm_file);
@@ -1568,8 +1568,7 @@ static int ubifs_vm_page_mkwrite(struct vm_fault *vmf)
        if (unlikely(page->mapping != inode->i_mapping ||
                     page_offset(page) > i_size_read(inode))) {
                /* Page got truncated out from underneath us */
-               err = -EINVAL;
-               goto out_unlock;
+               goto sigbus;
        }
 
        if (PagePrivate(page))
@@ -1598,12 +1597,10 @@ static int ubifs_vm_page_mkwrite(struct vm_fault *vmf)
        wait_for_stable_page(page);
        return VM_FAULT_LOCKED;
 
-out_unlock:
+sigbus:
        unlock_page(page);
        ubifs_release_budget(c, &req);
-       if (err)
-               err = VM_FAULT_SIGBUS;
-       return err;
+       return VM_FAULT_SIGBUS;
 }
 
 static const struct vm_operations_struct ubifs_file_vm_ops = {