diff options
Diffstat (limited to 'mm/migrate.c')
-rw-r--r-- | mm/migrate.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/mm/migrate.c b/mm/migrate.c index ed97c2c14fa8..89a0a1707f4c 100644 --- a/mm/migrate.c +++ b/mm/migrate.c | |||
@@ -184,9 +184,9 @@ void putback_movable_pages(struct list_head *l) | |||
184 | unlock_page(page); | 184 | unlock_page(page); |
185 | put_page(page); | 185 | put_page(page); |
186 | } else { | 186 | } else { |
187 | putback_lru_page(page); | ||
188 | dec_node_page_state(page, NR_ISOLATED_ANON + | 187 | dec_node_page_state(page, NR_ISOLATED_ANON + |
189 | page_is_file_cache(page)); | 188 | page_is_file_cache(page)); |
189 | putback_lru_page(page); | ||
190 | } | 190 | } |
191 | } | 191 | } |
192 | } | 192 | } |
@@ -194,7 +194,7 @@ void putback_movable_pages(struct list_head *l) | |||
194 | /* | 194 | /* |
195 | * Restore a potential migration pte to a working pte entry | 195 | * Restore a potential migration pte to a working pte entry |
196 | */ | 196 | */ |
197 | static int remove_migration_pte(struct page *page, struct vm_area_struct *vma, | 197 | static bool remove_migration_pte(struct page *page, struct vm_area_struct *vma, |
198 | unsigned long addr, void *old) | 198 | unsigned long addr, void *old) |
199 | { | 199 | { |
200 | struct page_vma_mapped_walk pvmw = { | 200 | struct page_vma_mapped_walk pvmw = { |
@@ -253,7 +253,7 @@ static int remove_migration_pte(struct page *page, struct vm_area_struct *vma, | |||
253 | update_mmu_cache(vma, pvmw.address, pvmw.pte); | 253 | update_mmu_cache(vma, pvmw.address, pvmw.pte); |
254 | } | 254 | } |
255 | 255 | ||
256 | return SWAP_AGAIN; | 256 | return true; |
257 | } | 257 | } |
258 | 258 | ||
259 | /* | 259 | /* |
@@ -1722,9 +1722,6 @@ static bool migrate_balanced_pgdat(struct pglist_data *pgdat, | |||
1722 | { | 1722 | { |
1723 | int z; | 1723 | int z; |
1724 | 1724 | ||
1725 | if (!pgdat_reclaimable(pgdat)) | ||
1726 | return false; | ||
1727 | |||
1728 | for (z = pgdat->nr_zones - 1; z >= 0; z--) { | 1725 | for (z = pgdat->nr_zones - 1; z >= 0; z--) { |
1729 | struct zone *zone = pgdat->node_zones + z; | 1726 | struct zone *zone = pgdat->node_zones + z; |
1730 | 1727 | ||
@@ -1947,7 +1944,8 @@ int migrate_misplaced_transhuge_page(struct mm_struct *mm, | |||
1947 | 1944 | ||
1948 | /* Prepare a page as a migration target */ | 1945 | /* Prepare a page as a migration target */ |
1949 | __SetPageLocked(new_page); | 1946 | __SetPageLocked(new_page); |
1950 | __SetPageSwapBacked(new_page); | 1947 | if (PageSwapBacked(page)) |
1948 | __SetPageSwapBacked(new_page); | ||
1951 | 1949 | ||
1952 | /* anon mapping, we can simply copy page->mapping to the new page: */ | 1950 | /* anon mapping, we can simply copy page->mapping to the new page: */ |
1953 | new_page->mapping = page->mapping; | 1951 | new_page->mapping = page->mapping; |