summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-04-26 05:30:56 +0000
committeralc <alc@FreeBSD.org>2003-04-26 05:30:56 +0000
commit58e751571843e92c071073742687f8f97cd563fd (patch)
tree4eb373897b6c22baeb15f734f41be8c694a60796 /sys/vm
parentf882712248bee48615df88ea73c6f74dfe49fe4a (diff)
downloadFreeBSD-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.c2
-rw-r--r--sys/vm/vm_object.c2
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);
}
/*
OpenPOWER on IntegriCloud