aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorDavid Rientjes <rientjes@google.com>2012-06-20 18:00:12 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2012-06-20 22:10:42 -0700
commitc4c0e9e544a0eb640798cc66e68f394fa4a561bf (patch)
treee317cd16d6ad065ba12f3b6618ffeb9685bd2872 /mm
parent0e3534c0417fef6e6535db8867a04798f2024e3f (diff)
downloadkernel_goldelico_gta04-c4c0e9e544a0eb640798cc66e68f394fa4a561bf.zip
kernel_goldelico_gta04-c4c0e9e544a0eb640798cc66e68f394fa4a561bf.tar.gz
kernel_goldelico_gta04-c4c0e9e544a0eb640798cc66e68f394fa4a561bf.tar.bz2
mm, mempolicy: fix mbind() to do synchronous migration
If the range passed to mbind() is not allocated on nodes set in the nodemask, it migrates the pages to respect the constraint. The final formal of migrate_pages() is a mode of type enum migrate_mode, not a boolean. do_mbind() is currently passing "true" which is the equivalent of MIGRATE_SYNC_LIGHT. This should instead be MIGRATE_SYNC for synchronous page migration. Signed-off-by: David Rientjes <rientjes@google.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/mempolicy.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index f15c1b2..1d771e4 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -1177,7 +1177,7 @@ static long do_mbind(unsigned long start, unsigned long len,
if (!list_empty(&pagelist)) {
nr_failed = migrate_pages(&pagelist, new_vma_page,
(unsigned long)vma,
- false, true);
+ false, MIGRATE_SYNC);
if (nr_failed)
putback_lru_pages(&pagelist);
}