summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2018-02-20 10:35:13 +0000
committerkib <kib@FreeBSD.org>2018-02-20 10:35:13 +0000
commitf16756fb14003abccd0f896cb8e0e13283bfa386 (patch)
tree3c30f513a057c681d9798ec79b34365062558d7c
parent16e6d7fe7fe6c6aaef69d2d48fce97925fd821a0 (diff)
downloadFreeBSD-src-f16756fb14003abccd0f896cb8e0e13283bfa386.zip
FreeBSD-src-f16756fb14003abccd0f896cb8e0e13283bfa386.tar.gz
MFC r329216:
linuxkpi: Do not leak pages on put.
-rw-r--r--sys/compat/linuxkpi/common/include/linux/mm.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/mm.h b/sys/compat/linuxkpi/common/include/linux/mm.h
index a649c8c..e9e2f3b 100644
--- a/sys/compat/linuxkpi/common/include/linux/mm.h
+++ b/sys/compat/linuxkpi/common/include/linux/mm.h
@@ -243,7 +243,8 @@ static inline void
put_page(struct vm_page *page)
{
vm_page_lock(page);
- vm_page_unwire(page, PQ_ACTIVE);
+ if (vm_page_unwire(page, PQ_ACTIVE) && page->object == NULL)
+ vm_page_free(page);
vm_page_unlock(page);
}
OpenPOWER on IntegriCloud