summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_shm.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2008-04-13 21:08:34 +0000
committeralc <alc@FreeBSD.org>2008-04-13 21:08:34 +0000
commit23cff967410afb5960f7621f1161bad524ae2783 (patch)
tree06eef0fbd3364de91d0ad823b2b637b5a4c284b0 /sys/kern/uipc_shm.c
parentecdc3b6d8cb8fe43a5a096731e33c747f18b2c1c (diff)
downloadFreeBSD-src-23cff967410afb5960f7621f1161bad524ae2783.zip
FreeBSD-src-23cff967410afb5960f7621f1161bad524ae2783.tar.gz
Initialize the vm object's flags to include OBJ_NOSPLIT, just like the
vm objects that are used by System V shared memory segments.
Diffstat (limited to 'sys/kern/uipc_shm.c')
-rw-r--r--sys/kern/uipc_shm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/kern/uipc_shm.c b/sys/kern/uipc_shm.c
index 0154a40..899896b 100644
--- a/sys/kern/uipc_shm.c
+++ b/sys/kern/uipc_shm.c
@@ -319,6 +319,10 @@ shm_alloc(struct ucred *ucred, mode_t mode)
shmfd->shm_object = vm_pager_allocate(OBJT_DEFAULT, NULL,
shmfd->shm_size, VM_PROT_DEFAULT, 0);
KASSERT(shmfd->shm_object != NULL, ("shm_create: vm_pager_allocate"));
+ VM_OBJECT_LOCK(shmfd->shm_object);
+ vm_object_clear_flag(shmfd->shm_object, OBJ_ONEMAPPING);
+ vm_object_set_flag(shmfd->shm_object, OBJ_NOSPLIT);
+ VM_OBJECT_UNLOCK(shmfd->shm_object);
vfs_timestamp(&shmfd->shm_birthtime);
shmfd->shm_atime = shmfd->shm_mtime = shmfd->shm_ctime =
shmfd->shm_birthtime;
OpenPOWER on IntegriCloud