summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_mmap.c
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1996-10-24 02:56:23 +0000
committerdyson <dyson@FreeBSD.org>1996-10-24 02:56:23 +0000
commit30a1549ad1017e9cad0ae5abe51394f296bc3a7c (patch)
tree1e37a15df69dbc4147c91c9de29f9b90119546d2 /sys/vm/vm_mmap.c
parent1b9def83a50abffaf9403dfc833f3d0fc98ac8f1 (diff)
downloadFreeBSD-src-30a1549ad1017e9cad0ae5abe51394f296bc3a7c.zip
FreeBSD-src-30a1549ad1017e9cad0ae5abe51394f296bc3a7c.tar.gz
Remove a bogus optimization in the mmap code. It is superfluous,
and at best is the same speed as the unoptimized code. At worst, it slows down trivial programs.
Diffstat (limited to 'sys/vm/vm_mmap.c')
-rw-r--r--sys/vm/vm_mmap.c29
1 files changed, 5 insertions, 24 deletions
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
index c21e55e..fdaf87e 100644
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -38,7 +38,7 @@
* from: Utah $Hdr: vm_mmap.c 1.6 91/10/21$
*
* @(#)vm_mmap.c 8.4 (Berkeley) 1/12/94
- * $Id: vm_mmap.c,v 1.50 1996/09/19 10:12:41 davidg Exp $
+ * $Id: vm_mmap.c,v 1.51 1996/10/13 07:16:50 phk Exp $
*/
/*
@@ -843,7 +843,7 @@ vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff)
vm_ooffset_t foff;
{
boolean_t fitit;
- vm_object_t object, object2;
+ vm_object_t object;
struct vnode *vp = NULL;
objtype_t type;
int rv = KERN_SUCCESS;
@@ -915,28 +915,12 @@ vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff)
flags |= MAP_SHARED;
}
- object2 = NULL;
docow = 0;
if ((flags & (MAP_ANON|MAP_SHARED)) == 0) {
- docow = MAP_COPY_ON_WRITE;
- if (objsize < size) {
- object2 = vm_object_allocate( OBJT_DEFAULT,
- OFF_TO_IDX(size - (foff & ~PAGE_MASK)));
- object2->backing_object = object;
- object2->backing_object_offset = foff;
- TAILQ_INSERT_TAIL(&object->shadow_head,
- object2, shadow_list);
- ++object->shadow_count;
- } else {
- docow |= MAP_COPY_NEEDED;
- }
+ docow = MAP_COPY_ON_WRITE | MAP_COPY_NEEDED;
}
- if (object2)
- rv = vm_map_find(map, object2, 0, addr, size, fitit,
- prot, maxprot, docow);
- else
- rv = vm_map_find(map, object, foff, addr, size, fitit,
+ rv = vm_map_find(map, object, foff, addr, size, fitit,
prot, maxprot, docow);
@@ -946,10 +930,7 @@ vm_mmap(map, addr, size, prot, maxprot, flags, handle, foff)
* object if it's an unnamed anonymous mapping
* or named anonymous without other references.
*/
- if (object2)
- vm_object_deallocate(object2);
- else
- vm_object_deallocate(object);
+ vm_object_deallocate(object);
goto out;
}
OpenPOWER on IntegriCloud