summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_syscalls.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2010-05-02 19:25:22 +0000
committerkib <kib@FreeBSD.org>2010-05-02 19:25:22 +0000
commit9c4f2e9ab2c6f540192e135b002316c170d45a76 (patch)
tree6e69896be05fa25451179dc9108ed4ff386ce8ad /sys/kern/uipc_syscalls.c
parent299c89c6fb0cdd9e93b22b9aed707322f2846c8a (diff)
downloadFreeBSD-src-9c4f2e9ab2c6f540192e135b002316c170d45a76.zip
FreeBSD-src-9c4f2e9ab2c6f540192e135b002316c170d45a76.tar.gz
Lock the page around hold_count access.
Reviewed by: alc
Diffstat (limited to 'sys/kern/uipc_syscalls.c')
-rw-r--r--sys/kern/uipc_syscalls.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index a14be72..3271235 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -2108,6 +2108,7 @@ retry_space:
mbstat.sf_iocnt++;
}
if (error) {
+ vm_page_lock(pg);
vm_page_lock_queues();
vm_page_unwire(pg, 0);
/*
@@ -2121,6 +2122,7 @@ retry_space:
vm_page_free(pg);
}
vm_page_unlock_queues();
+ vm_page_unlock(pg);
VM_OBJECT_UNLOCK(obj);
if (error == EAGAIN)
error = 0; /* not a real error */
OpenPOWER on IntegriCloud