Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4f32be67 authored by Wanpeng Li's avatar Wanpeng Li Committed by Linus Torvalds
Browse files

mm/hwpoison: fix page refcount of unknown non LRU page



After trying to drain pages from pagevec/pageset, we try to get reference
count of the page again, however, the reference count of the page is not
reduced if the page is still not on LRU list.

Fix it by adding the put_page() to drop the page reference which is from
__get_any_page().

Signed-off-by: default avatarWanpeng Li <wanpeng.li@hotmail.com>
Acked-by: default avatarNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: <stable@vger.kernel.org>	[3.9+]
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7ddab733
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1538,6 +1538,8 @@ static int get_any_page(struct page *page, unsigned long pfn, int flags)
		 */
		ret = __get_any_page(page, pfn, 0);
		if (!PageLRU(page)) {
			/* Drop page reference which is from __get_any_page() */
			put_page(page);
			pr_info("soft_offline: %#lx: unknown non LRU page type %lx\n",
				pfn, page->flags);
			return -EIO;