diff options
author | alc <alc@FreeBSD.org> | 2003-04-13 00:43:48 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2003-04-13 00:43:48 +0000 |
commit | 6da30a3fc5b26f37651eb4a8d2c8f433ac6fbffa (patch) | |
tree | 02fa9d222ef57f61e1814e6807d2b6894b1b82cf /sys/vm | |
parent | 032292ec513eab1ea1029d80f3f09c74735cc95f (diff) | |
download | FreeBSD-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/vm')
-rw-r--r-- | sys/vm/vm_object.c | 6 |
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); |