mm: when migrate_pages returns 0, all pages must have been released
[linux-2.6-block.git] / mm / memory-failure.c
index 548fbd70f026bfbec6c578630ce1bcd496d7cc59..75398b0bfedeb98ea2d463f0e071ec3c37e89c1d 100644 (file)
@@ -1419,6 +1419,7 @@ int soft_offline_page(struct page *page, int flags)
                ret = migrate_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL,
                                                                0, true);
                if (ret) {
+                       putback_lru_pages(&pagelist);
                        pr_info("soft offline: %#lx: migration failed %d, type %lx\n",
                                pfn, ret, page->flags);
                        if (ret > 0)