diff options
author | alc <alc@FreeBSD.org> | 2008-04-13 21:08:34 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2008-04-13 21:08:34 +0000 |
commit | 23cff967410afb5960f7621f1161bad524ae2783 (patch) | |
tree | 06eef0fbd3364de91d0ad823b2b637b5a4c284b0 /sys/kern/uipc_shm.c | |
parent | ecdc3b6d8cb8fe43a5a096731e33c747f18b2c1c (diff) | |
download | FreeBSD-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.c | 4 |
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; |