]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - mm/mmap.c
mm: mlock_vma_pages_range() only return success or failure
[net-next-2.6.git] / mm / mmap.c
index 7acd7b0ad1762ac7c8b51bc4f9466eddcd5460d4..c646618702cfdefff529791ebe3de5d8cef84a0e 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1265,8 +1265,8 @@ out:
        mm->total_vm += len >> PAGE_SHIFT;
        vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
        if (vm_flags & VM_LOCKED) {
-               long nr_pages = mlock_vma_pages_range(vma, addr, addr + len);
-               mm->locked_vm += (len >> PAGE_SHIFT) - nr_pages;
+               if (!mlock_vma_pages_range(vma, addr, addr + len))
+                       mm->locked_vm += (len >> PAGE_SHIFT);
        } else if ((flags & MAP_POPULATE) && !(flags & MAP_NONBLOCK))
                make_pages_present(addr, addr + len);
        return addr;