Uniofs: port to 3.5
authorErez Zadok <ezk@cs.sunysb.edu>
Wed, 27 Nov 2013 03:01:34 +0000 (22:01 -0500)
committerErez Zadok <ezk@cs.sunysb.edu>
Tue, 11 Nov 2014 02:53:02 +0000 (21:53 -0500)
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
fs/unionfs/file.c
fs/unionfs/super.c

index f583c8fc5a24d885dbb4caca78a3846844e17914..8a04063930e5f513f445c1bbcfe04779bb91c61f 100644 (file)
@@ -156,8 +156,9 @@ static int unionfs_mmap(struct file *file, struct vm_area_struct *vma)
                        goto out;
                }
                saved_vm_ops = vma->vm_ops;
-               err = do_munmap(current->mm, vma->vm_start,
-                               vma->vm_end - vma->vm_start);
+               up_write(&current->mm->mmap_sem); /* VFS already holds sema... */
+               err = vm_munmap(vma->vm_start, vma->vm_end - vma->vm_start);
+               down_write(&current->mm->mmap_sem);
                if (err) {
                        printk(KERN_ERR "unionfs: do_munmap failed %d\n", err);
                        goto out;
index b99f14d1c748772824457d2c4c8eaf8e405b0355..53d289b19c39131077237adad7f0e3416fd6ba54 100644 (file)
@@ -835,7 +835,7 @@ static void unionfs_evict_inode(struct inode *inode)
        struct unionfs_dir_state *rdstate;
 
        truncate_inode_pages(&inode->i_data, 0);
-       end_writeback(inode);
+       clear_inode(inode);
 
        list_for_each_safe(pos, n, &UNIONFS_I(inode)->readdircache) {
                rdstate = list_entry(pos, struct unionfs_dir_state, cache);