diff options
author | alc <alc@FreeBSD.org> | 2003-04-26 05:30:56 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2003-04-26 05:30:56 +0000 |
commit | 58e751571843e92c071073742687f8f97cd563fd (patch) | |
tree | 4eb373897b6c22baeb15f734f41be8c694a60796 /sys/vm | |
parent | f882712248bee48615df88ea73c6f74dfe49fe4a (diff) | |
download | FreeBSD-src-58e751571843e92c071073742687f8f97cd563fd.zip FreeBSD-src-58e751571843e92c071073742687f8f97cd563fd.tar.gz |
- Extend the scope of two existing vm_object locks to cover
swap_pager_freespace().
Diffstat (limited to 'sys/vm')
-rw-r--r-- | sys/vm/vm_map.c | 2 | ||||
-rw-r--r-- | sys/vm/vm_object.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index f45c471..8ea43b6 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -2144,7 +2144,6 @@ vm_map_delete(vm_map_t map, vm_offset_t start, vm_offset_t end) vm_object_collapse(object); VM_OBJECT_LOCK(object); vm_object_page_remove(object, offidxstart, offidxend, FALSE); - VM_OBJECT_UNLOCK(object); if (object->type == OBJT_SWAP) { swap_pager_freespace(object, offidxstart, count); } @@ -2152,6 +2151,7 @@ vm_map_delete(vm_map_t map, vm_offset_t start, vm_offset_t end) offidxstart < object->size) { object->size = offidxstart; } + VM_OBJECT_UNLOCK(object); } mtx_unlock(&Giant); } diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 486b7c6..7aa399a 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1797,10 +1797,10 @@ vm_object_coalesce(vm_object_t prev_object, vm_pindex_t prev_pindex, vm_object_page_remove(prev_object, next_pindex, next_pindex + next_size, FALSE); - VM_OBJECT_UNLOCK(prev_object); if (prev_object->type == OBJT_SWAP) swap_pager_freespace(prev_object, next_pindex, next_size); + VM_OBJECT_UNLOCK(prev_object); } /* |