diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index 8da0334b9ca011f69e0369267ba62952383f9bd1..8ee7b16235acb7db0d333d8c061bb5f663424eec 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)
 		if (!ret) {
 			if (set_hwpoison_free_buddy_page(page))
 				num_poisoned_pages_inc();
+			else
+				ret = -EBUSY;
 		}
 	}
 	return ret;