summaryrefslogtreecommitdiffstats
path: root/sys/kern/sysv_shm.c
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1998-05-04 03:01:44 +0000
committerdyson <dyson@FreeBSD.org>1998-05-04 03:01:44 +0000
commitdfdb369a7d706526b72dc7bff958688de5ca72a2 (patch)
tree2bf3497de13a2e7c2ced291564c639a2c97f01f9 /sys/kern/sysv_shm.c
parent869ef5d1be6f873153140a04951a273e92256975 (diff)
downloadFreeBSD-src-dfdb369a7d706526b72dc7bff958688de5ca72a2.zip
FreeBSD-src-dfdb369a7d706526b72dc7bff958688de5ca72a2.tar.gz
Work around some VM bugs, the worst being an overly aggressive
swap space free calculation. More complete fixes will be forthcoming, in a week.
Diffstat (limited to 'sys/kern/sysv_shm.c')
-rw-r--r--sys/kern/sysv_shm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c
index a52b3d7..abc1765 100644
--- a/sys/kern/sysv_shm.c
+++ b/sys/kern/sysv_shm.c
@@ -1,4 +1,4 @@
-/* $Id: sysv_shm.c,v 1.34 1998/02/09 06:09:25 eivind Exp $ */
+/* $Id: sysv_shm.c,v 1.35 1998/03/30 09:50:46 phk Exp $ */
/* $NetBSD: sysv_shm.c,v 1.23 1994/07/04 23:25:12 glass Exp $ */
/*
@@ -145,6 +145,7 @@ shm_deallocate_segment(shmseg)
size_t size;
shm_handle = shmseg->shm_internal;
+ shm_handle->shm_object->shadow_count--;
vm_object_deallocate(shm_handle->shm_object);
free((caddr_t)shm_handle, M_SHM);
shmseg->shm_internal = NULL;
@@ -503,6 +504,9 @@ shmget_allocate_segment(p, uap, mode)
shm_handle->shm_object =
vm_pager_allocate(OBJT_SWAP, 0, OFF_TO_IDX(size),
VM_PROT_DEFAULT, 0);
+ shm_handle->shm_object->shadow_count++;
+ shm_handle->shm_object->flags &= ~OBJ_ONEMAPPING;
+
shmseg->shm_internal = shm_handle;
shmseg->shm_perm.cuid = shmseg->shm_perm.uid = cred->cr_uid;
shmseg->shm_perm.cgid = shmseg->shm_perm.gid = cred->cr_gid;
OpenPOWER on IntegriCloud