diff options
author | Christoph Lameter <clameter@sgi.com> | 2006-06-25 08:46:49 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-25 13:00:55 -0400 |
commit | e6a1530d692d6a60cdf15dfbcfea07f5324d7b9f (patch) | |
tree | bb34a4d745eb7f7e8d3de40b171fac17822ee8ac /mm/migrate.c | |
parent | 7b2259b3e53f128c10a9fded0965e69d4a949847 (diff) |
[PATCH] Allow migration of mlocked pages
Hugh clarified the role of VM_LOCKED. So we can now implement page
migration for mlocked pages.
Allow the migration of mlocked pages. This means that try_to_unmap must
unmap mlocked pages in the migration case.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Acked-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/migrate.c')
-rw-r--r-- | mm/migrate.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/mm/migrate.c b/mm/migrate.c index 0576c053598..3f1e0c2c942 100644 --- a/mm/migrate.c +++ b/mm/migrate.c | |||
@@ -616,15 +616,13 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private, | |||
616 | /* | 616 | /* |
617 | * Establish migration ptes or remove ptes | 617 | * Establish migration ptes or remove ptes |
618 | */ | 618 | */ |
619 | if (try_to_unmap(page, 1) != SWAP_FAIL) { | 619 | try_to_unmap(page, 1); |
620 | if (!page_mapped(page)) | 620 | if (!page_mapped(page)) |
621 | rc = move_to_new_page(newpage, page); | 621 | rc = move_to_new_page(newpage, page); |
622 | } else | ||
623 | /* A vma has VM_LOCKED set -> permanent failure */ | ||
624 | rc = -EPERM; | ||
625 | 622 | ||
626 | if (rc) | 623 | if (rc) |
627 | remove_migration_ptes(page, page); | 624 | remove_migration_ptes(page, page); |
625 | |||
628 | unlock: | 626 | unlock: |
629 | unlock_page(page); | 627 | unlock_page(page); |
630 | 628 | ||