X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=mm%2Fmigrate.c;h=1c25040693d2565b8f1a5affc6eb5bb2310cf15e;hb=ba6a13083c1b720a47c05bee7bedbb6ef06c4611;hp=d444229f2599245e1cb0d904e7cdfed11db88b7a;hpb=ac69e973ff0660e455f4ba1ddd4dcce4ae70ed1a;p=linux-2.6 diff --git a/mm/migrate.c b/mm/migrate.c index d444229f25..1c25040693 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