]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/blobdiff - mm/migrate.c
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdim...
[mirror_ubuntu-zesty-kernel.git] / mm / migrate.c
index 0ed24b1fa77b89cd49738390cda724c5e74008f8..87f4d0f818194ea68cd323b1bcf84dd430b826a3 100644 (file)
@@ -466,13 +466,15 @@ int migrate_page_move_mapping(struct address_space *mapping,
         */
        newpage->index = page->index;
        newpage->mapping = page->mapping;
-       if (PageSwapBacked(page))
-               __SetPageSwapBacked(newpage);
-
        get_page(newpage);      /* add cache reference */
-       if (PageSwapCache(page)) {
-               SetPageSwapCache(newpage);
-               set_page_private(newpage, page_private(page));
+       if (PageSwapBacked(page)) {
+               __SetPageSwapBacked(newpage);
+               if (PageSwapCache(page)) {
+                       SetPageSwapCache(newpage);
+                       set_page_private(newpage, page_private(page));
+               }
+       } else {
+               VM_BUG_ON_PAGE(PageSwapCache(page), page);
        }
 
        /* Move dirty while page refs frozen and newpage not yet exposed */