summaryrefslogtreecommitdiffstats
path: root/mm/migrate.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-05-02 20:33:57 +0200
committerJeff Garzik <jeff@garzik.org>2006-05-02 20:33:57 +0200
commit1fb5fef9b80d9a3b5368e22031627afd1585487b (patch)
tree54f07a532b5b2622b8642156bbcaeca637fcdb8f /mm/migrate.c
parentMerge branch 'master' into upstream (diff)
parent[PATCH] vmsplice: restrict stealing a little more (diff)
downloadlinux-1fb5fef9b80d9a3b5368e22031627afd1585487b.tar.xz
linux-1fb5fef9b80d9a3b5368e22031627afd1585487b.zip
Merge branch 'master' into upstream
Diffstat (limited to 'mm/migrate.c')
-rw-r--r--mm/migrate.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/mm/migrate.c b/mm/migrate.c
index d444229f2599..1c25040693d2 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -439,6 +439,17 @@ redo:
goto unlock_both;
}
+ /* Make sure the dirty bit is up to date */
+ if (try_to_unmap(page, 1) == SWAP_FAIL) {
+ rc = -EPERM;
+ goto unlock_both;
+ }
+
+ if (page_mapcount(page)) {
+ rc = -EAGAIN;
+ goto unlock_both;
+ }
+
/*
* Default handling if a filesystem does not provide
* a migration function. We can only migrate clean