mm/migrate.c: pair unlock_page() and lock_page() when migrating huge pages
authorHillf Danton <[email protected]>
Thu, 8 Dec 2011 22:34:20 +0000 (14:34 -0800)
committerLinus Torvalds <[email protected]>
Fri, 9 Dec 2011 15:50:28 +0000 (07:50 -0800)
Avoid unlocking and unlocked page if we failed to lock it.

Signed-off-by: Hillf Danton <[email protected]>
Cc: Naoya Horiguchi <[email protected]>
Cc: Andrea Arcangeli <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/migrate.c

index 578e29174fa6a0b84e8cbb10f8bf22ffd9a37b57..177aca424a069ac1ae1b44d48a8e6d992cd42a4d 100644 (file)
@@ -871,9 +871,9 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
 
        if (anon_vma)
                put_anon_vma(anon_vma);
-out:
        unlock_page(hpage);
 
+out:
        if (rc != -EAGAIN) {
                list_del(&hpage->lru);
                put_page(hpage);