From a921c15d0ee600277e688a8cbf550089d2e539dc Mon Sep 17 00:00:00 2001 From: alc Date: Sun, 13 Apr 2003 20:22:02 +0000 Subject: Lock some manipulations of the vm object's flags. --- sys/vm/vm_map.c | 8 ++++---- sys/vm/vm_object.c | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'sys/vm') diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 123b162..d971402 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -2286,9 +2286,9 @@ vm_map_copy_entry( } vm_object_reference(src_object); - vm_object_lock(src_object); + VM_OBJECT_LOCK(src_object); vm_object_clear_flag(src_object, OBJ_ONEMAPPING); - vm_object_unlock(src_object); + VM_OBJECT_UNLOCK(src_object); dst_entry->object.vm_object = src_object; src_entry->eflags |= (MAP_ENTRY_COW|MAP_ENTRY_NEEDS_COPY); dst_entry->eflags |= (MAP_ENTRY_COW|MAP_ENTRY_NEEDS_COPY); @@ -2378,9 +2378,9 @@ vmspace_fork(struct vmspace *vm1) vm_object_deallocate(object); object = old_entry->object.vm_object; } - vm_object_lock(object); + VM_OBJECT_LOCK(object); vm_object_clear_flag(object, OBJ_ONEMAPPING); - vm_object_unlock(object); + VM_OBJECT_UNLOCK(object); /* * Clone the entry, referencing the shared object. diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 6f76a2d..cc0c9d1 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1171,7 +1171,9 @@ vm_object_split(vm_map_entry_t entry) vm_object_reference(source); /* Referenced by new_object */ TAILQ_INSERT_TAIL(&source->shadow_head, new_object, shadow_list); + VM_OBJECT_LOCK(source); vm_object_clear_flag(source, OBJ_ONEMAPPING); + VM_OBJECT_UNLOCK(source); new_object->backing_object_offset = orig_object->backing_object_offset + offset; new_object->backing_object = source; -- cgit v1.1