diff options
author | Alan Cox <alc@FreeBSD.org> | 2003-01-02 18:32:13 +0000 |
---|---|---|
committer | Alan Cox <alc@FreeBSD.org> | 2003-01-02 18:32:13 +0000 |
commit | 49bf855d206640760b7e256558f369ed924cf998 (patch) | |
tree | 6f4ad31f68a30abb8ef90d37cbc7ad118153faf2 /sys/kern/sysv_shm.c | |
parent | 464ef179a037714b6812b45fd58d9a7235458048 (diff) |
Lock the vm object when performing back-to-back vm_object_clear_flag() and
vm_object_set_flag().
Notes
Notes:
svn path=/head/; revision=108556
Diffstat (limited to 'sys/kern/sysv_shm.c')
-rw-r--r-- | sys/kern/sysv_shm.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c index 8baa579be790..6c9d34a8dd5f 100644 --- a/sys/kern/sysv_shm.c +++ b/sys/kern/sysv_shm.c @@ -660,8 +660,10 @@ shmget_allocate_segment(td, uap, mode) shm_handle->shm_object = vm_pager_allocate(OBJT_SWAP, 0, size, VM_PROT_DEFAULT, 0); } + vm_object_lock(shm_handle->shm_object); vm_object_clear_flag(shm_handle->shm_object, OBJ_ONEMAPPING); vm_object_set_flag(shm_handle->shm_object, OBJ_NOSPLIT); + vm_object_unlock(shm_handle->shm_object); shmseg->shm_internal = shm_handle; shmseg->shm_perm.cuid = shmseg->shm_perm.uid = cred->cr_uid; |