diff options
| -rw-r--r-- | mm/migrate.c | 11 |
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: | |||
| 439 | goto unlock_both; | 439 | goto unlock_both; |
| 440 | } | 440 | } |
| 441 | 441 | ||
| 442 | /* Make sure the dirty bit is up to date */ | ||
| 443 | if (try_to_unmap(page, 1) == SWAP_FAIL) { | ||
| 444 | rc = -EPERM; | ||
| 445 | goto unlock_both; | ||
| 446 | } | ||
| 447 | |||
| 448 | if (page_mapcount(page)) { | ||
| 449 | rc = -EAGAIN; | ||
| 450 | goto unlock_both; | ||
| 451 | } | ||
| 452 | |||
| 442 | /* | 453 | /* |
| 443 | * Default handling if a filesystem does not provide | 454 | * Default handling if a filesystem does not provide |
| 444 | * a migration function. We can only migrate clean | 455 | * a migration function. We can only migrate clean |
