summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-11-02 22:52:42 +0000
committeralc <alc@FreeBSD.org>2003-11-02 22:52:42 +0000
commitf2e8aed3e6e18aef3f6cee2602985b43ab4a14c3 (patch)
tree67eb1ca32b5be9dcc611bf9c6072760d64bd5ef5 /sys/vm
parent7908dcfbce1e0c381cc7a08c905b3acbf4ecd481 (diff)
downloadFreeBSD-src-f2e8aed3e6e18aef3f6cee2602985b43ab4a14c3.zip
FreeBSD-src-f2e8aed3e6e18aef3f6cee2602985b43ab4a14c3.tar.gz
- Increase the scope of two vm object locks in vm_object_split().
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_object.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index be68111..abf4cf9 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -1204,6 +1204,8 @@ vm_object_split(vm_map_entry_t entry)
if (new_object == NULL)
return;
+ VM_OBJECT_LOCK(new_object);
+ VM_OBJECT_LOCK(orig_object);
source = orig_object->backing_object;
if (source != NULL) {
VM_OBJECT_LOCK(source);
@@ -1218,8 +1220,6 @@ vm_object_split(vm_map_entry_t entry)
orig_object->backing_object_offset + offset;
new_object->backing_object = source;
}
- VM_OBJECT_LOCK(new_object);
- VM_OBJECT_LOCK(orig_object);
for (idx = 0; idx < size; idx++) {
retry:
m = vm_page_lookup(orig_object, offidxstart + idx);
OpenPOWER on IntegriCloud