diff options
author | alc <alc@FreeBSD.org> | 2002-06-12 08:15:52 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-06-12 08:15:52 +0000 |
commit | e39b056b5de4e0d64c4f5c3b4bfb11064143ecf0 (patch) | |
tree | d0107c060ac4efef408d3da527d96929bbb1a773 /sys/vm | |
parent | 561391ed94bcedfeab5d4cf77078dc6d8f2c9e59 (diff) | |
download | FreeBSD-src-e39b056b5de4e0d64c4f5c3b4bfb11064143ecf0.zip FreeBSD-src-e39b056b5de4e0d64c4f5c3b4bfb11064143ecf0.tar.gz |
o Acquire and release Giant in vm_map_unlock_and_wait().
Submitted by: tegge
Diffstat (limited to 'sys/vm')
-rw-r--r-- | sys/vm/vm_map.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 9d182c1..fadf7cc 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -429,11 +429,13 @@ _vm_map_clear_recursive(vm_map_t map, const char *file, int line) static __inline int vm_map_unlock_and_wait(vm_map_t map, boolean_t user_wait) { + int retval; - GIANT_REQUIRED; + mtx_lock(&Giant); vm_map_unlock(map); - - return (tsleep(&map->root, PVM, "vmmapw", 0)); + retval = tsleep(&map->root, PVM, "vmmapw", 0); + mtx_unlock(&Giant); + return (retval); } /* |