summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarkj <markj@FreeBSD.org>2016-02-05 19:35:53 +0000
committermarkj <markj@FreeBSD.org>2016-02-05 19:35:53 +0000
commitf611a6573503c119077126cc01f2444b3cd0db13 (patch)
treedadea097c7ad23956e17892e066b80472620df75
parentd6ed13470ae8ba961478892aefbc84081c8ece1b (diff)
downloadFreeBSD-src-f611a6573503c119077126cc01f2444b3cd0db13.zip
FreeBSD-src-f611a6573503c119077126cc01f2444b3cd0db13.tar.gz
Plug a vm_page leak introduced in r292373.
Reported by: vangyzen
-rw-r--r--sys/vm/sg_pager.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/vm/sg_pager.c b/sys/vm/sg_pager.c
index 84bfa49..2cccb7ea 100644
--- a/sys/vm/sg_pager.c
+++ b/sys/vm/sg_pager.c
@@ -189,6 +189,9 @@ sg_pager_getpages(vm_object_t object, vm_page_t *m, int count, int *rbehind,
VM_OBJECT_WLOCK(object);
TAILQ_INSERT_TAIL(&object->un_pager.sgp.sgp_pglist, page, plinks.q);
vm_page_replace_checked(page, object, offset, m[0]);
+ vm_page_lock(m[0]);
+ vm_page_free(m[0]);
+ vm_page_unlock(m[0]);
m[0] = page;
page->valid = VM_PAGE_BITS_ALL;
OpenPOWER on IntegriCloud