diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2016-05-17 02:17:59 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2016-05-17 02:17:59 -0400 |
| commit | 0e0162bb8c008fa7742f69d4d4982c8a37b88f95 (patch) | |
| tree | 4b230ab63b5698a44d2948e70a6cc22405c351e9 /mm/migrate.c | |
| parent | ae05327a00fd47c34dfe25294b359a3f3fef96e8 (diff) | |
| parent | 38b78a5f18584db6fa7441e0f4531b283b0e6725 (diff) | |
| download | lwn-0e0162bb8c008fa7742f69d4d4982c8a37b88f95.tar.gz lwn-0e0162bb8c008fa7742f69d4d4982c8a37b88f95.zip | |
Merge branch 'ovl-fixes' into for-linus
Backmerge to resolve a conflict in ovl_lookup_real();
"ovl_lookup_real(): use lookup_one_len_unlocked()" instead,
but it was too late in the cycle to rebase.
Diffstat (limited to 'mm/migrate.c')
| -rw-r--r-- | mm/migrate.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/mm/migrate.c b/mm/migrate.c index 6c822a7b27e0..f9dfb18a4eba 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -975,7 +975,13 @@ out: dec_zone_page_state(page, NR_ISOLATED_ANON + page_is_file_cache(page)); /* Soft-offlined page shouldn't go through lru cache list */ - if (reason == MR_MEMORY_FAILURE) { + if (reason == MR_MEMORY_FAILURE && rc == MIGRATEPAGE_SUCCESS) { + /* + * With this release, we free successfully migrated + * page and set PG_HWPoison on just freed page + * intentionally. Although it's rather weird, it's how + * HWPoison flag works at the moment. + */ put_page(page); if (!test_set_page_hwpoison(page)) num_poisoned_pages_inc(); |
