summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-04-13 00:43:48 +0000
committeralc <alc@FreeBSD.org>2003-04-13 00:43:48 +0000
commit6da30a3fc5b26f37651eb4a8d2c8f433ac6fbffa (patch)
tree02fa9d222ef57f61e1814e6807d2b6894b1b82cf /sys
parent032292ec513eab1ea1029d80f3f09c74735cc95f (diff)
downloadFreeBSD-src-6da30a3fc5b26f37651eb4a8d2c8f433ac6fbffa.zip
FreeBSD-src-6da30a3fc5b26f37651eb4a8d2c8f433ac6fbffa.tar.gz
Permit vm_object_pip_add() and vm_object_pip_wakeup() on the kmem_object
without Giant held.
Diffstat (limited to 'sys')
-rw-r--r--sys/vm/vm_object.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index 2111268..6f76a2d 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -268,7 +268,8 @@ vm_object_clear_flag(vm_object_t object, u_short bits)
void
vm_object_pip_add(vm_object_t object, short i)
{
- GIANT_REQUIRED;
+
+ mtx_assert(object == kmem_object ? &object->mtx : &Giant, MA_OWNED);
object->paging_in_progress += i;
}
@@ -282,7 +283,8 @@ vm_object_pip_subtract(vm_object_t object, short i)
void
vm_object_pip_wakeup(vm_object_t object)
{
- GIANT_REQUIRED;
+
+ mtx_assert(object == kmem_object ? &object->mtx : &Giant, MA_OWNED);
object->paging_in_progress--;
if ((object->flags & OBJ_PIPWNT) && object->paging_in_progress == 0) {
vm_object_clear_flag(object, OBJ_PIPWNT);
OpenPOWER on IntegriCloud