summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-04-13 20:22:02 +0000
committeralc <alc@FreeBSD.org>2003-04-13 20:22:02 +0000
commita921c15d0ee600277e688a8cbf550089d2e539dc (patch)
tree956222756ca3bf345a65f41b30c13abe6276a957 /sys/vm
parenteac23cf75a6a6757fa05e79e75b8895f7e2ca725 (diff)
downloadFreeBSD-src-a921c15d0ee600277e688a8cbf550089d2e539dc.zip
FreeBSD-src-a921c15d0ee600277e688a8cbf550089d2e539dc.tar.gz
Lock some manipulations of the vm object's flags.
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_map.c8
-rw-r--r--sys/vm/vm_object.c2
2 files changed, 6 insertions, 4 deletions
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;
OpenPOWER on IntegriCloud