diff options
author | alc <alc@FreeBSD.org> | 1999-03-01 20:42:16 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 1999-03-01 20:42:16 +0000 |
commit | 4d728cf4b359354dbad47f5276384d20681621ab (patch) | |
tree | fa16c000bc096e7b138e6006ea104b4272181c64 /sys/vm | |
parent | f9bc5c6a2601bc0a3008def148bc30191850b7a1 (diff) | |
download | FreeBSD-src-4d728cf4b359354dbad47f5276384d20681621ab.zip FreeBSD-src-4d728cf4b359354dbad47f5276384d20681621ab.tar.gz |
mincore doesn't modify the vm_map. Therefore, it doesn't require
an exclusive lock. A read lock will suffice.
Diffstat (limited to 'sys/vm')
-rw-r--r-- | sys/vm/vm_mmap.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c index 58f066d..cda3ee0 100644 --- a/sys/vm/vm_mmap.c +++ b/sys/vm/vm_mmap.c @@ -38,7 +38,7 @@ * from: Utah $Hdr: vm_mmap.c 1.6 91/10/21$ * * @(#)vm_mmap.c 8.4 (Berkeley) 1/12/94 - * $Id: vm_mmap.c,v 1.89 1999/02/07 21:48:22 dillon Exp $ + * $Id: vm_mmap.c,v 1.90 1999/02/19 14:25:36 luoqi Exp $ */ /* @@ -695,7 +695,7 @@ mincore(p, uap) map = &p->p_vmspace->vm_map; pmap = vmspace_pmap(p->p_vmspace); - vm_map_lock(map); + vm_map_lock_read(map); if (!vm_map_lookup_entry(map, addr, &entry)) entry = entry->next; @@ -777,7 +777,7 @@ mincore(p, uap) while((lastvecindex + 1) < vecindex) { error = subyte( vec + lastvecindex, 0); if (error) { - vm_map_unlock(map); + vm_map_unlock_read(map); return (EFAULT); } ++lastvecindex; @@ -788,7 +788,7 @@ mincore(p, uap) */ error = subyte( vec + vecindex, mincoreinfo); if (error) { - vm_map_unlock(map); + vm_map_unlock_read(map); return (EFAULT); } lastvecindex = vecindex; @@ -803,13 +803,13 @@ mincore(p, uap) while((lastvecindex + 1) < vecindex) { error = subyte( vec + lastvecindex, 0); if (error) { - vm_map_unlock(map); + vm_map_unlock_read(map); return (EFAULT); } ++lastvecindex; } - vm_map_unlock(map); + vm_map_unlock_read(map); return (0); } |