aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory-failure.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/memory-failure.c')
-rw-r--r--mm/memory-failure.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index 8da0334b9ca0..d9cc6606f409 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -1730,6 +1730,8 @@ static int soft_offline_huge_page(struct page *page, int flags)
1730 if (!ret) { 1730 if (!ret) {
1731 if (set_hwpoison_free_buddy_page(page)) 1731 if (set_hwpoison_free_buddy_page(page))
1732 num_poisoned_pages_inc(); 1732 num_poisoned_pages_inc();
1733 else
1734 ret = -EBUSY;
1733 } 1735 }
1734 } 1736 }
1735 return ret; 1737 return ret;
@@ -1854,11 +1856,8 @@ static int soft_offline_in_use_page(struct page *page, int flags)
1854 1856
1855static int soft_offline_free_page(struct page *page) 1857static int soft_offline_free_page(struct page *page)
1856{ 1858{
1857 int rc = 0; 1859 int rc = dissolve_free_huge_page(page);
1858 struct page *head = compound_head(page);
1859 1860
1860 if (PageHuge(head))
1861 rc = dissolve_free_huge_page(page);
1862 if (!rc) { 1861 if (!rc) {
1863 if (set_hwpoison_free_buddy_page(page)) 1862 if (set_hwpoison_free_buddy_page(page))
1864 num_poisoned_pages_inc(); 1863 num_poisoned_pages_inc();