X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=mm%2Ffremap.c;h=87da3590c61e20287b4854e8212c178f96cb73c6;hb=a3e6789a54362c24d929e2741bde8c8c4ac7a9c9;hp=4723ac8d2fc200d5990f830b6f4c8c0fd2a9bbcf;hpb=c7f17deb316e41a9db28d7486f4067d06d68ebf0;p=~andy%2Flinux diff --git a/mm/fremap.c b/mm/fremap.c index 4723ac8d2fc..87da3590c61 100644 --- a/mm/fremap.c +++ b/mm/fremap.c @@ -204,10 +204,8 @@ get_write_lock: unsigned long addr; struct file *file = get_file(vma->vm_file); - vm_flags = vma->vm_flags; - if (!(flags & MAP_NONBLOCK)) - vm_flags |= VM_POPULATE; - addr = mmap_region(file, start, size, vm_flags, pgoff); + addr = mmap_region(file, start, size, + vma->vm_flags, pgoff); fput(file); if (IS_ERR_VALUE(addr)) { err = addr; @@ -226,12 +224,6 @@ get_write_lock: mutex_unlock(&mapping->i_mmap_mutex); } - if (!(flags & MAP_NONBLOCK) && !(vma->vm_flags & VM_POPULATE)) { - if (!has_write_lock) - goto get_write_lock; - vma->vm_flags |= VM_POPULATE; - } - if (vma->vm_flags & VM_LOCKED) { /* * drop PG_Mlocked flag for over-mapped range