patch-2.4.3 linux/ipc/shm.c
Next file: linux/kernel/acct.c
Previous file: linux/init/main.c
Back to the patch index
Back to the overall index
- Lines: 39
- Date:
Mon Mar 19 12:35:08 2001
- Orig file:
v2.4.2/linux/ipc/shm.c
- Orig date:
Wed Feb 21 18:20:46 2001
diff -u --recursive --new-file v2.4.2/linux/ipc/shm.c linux/ipc/shm.c
@@ -71,7 +71,9 @@
void __init shm_init (void)
{
ipc_init_ids(&shm_ids, 1);
+#ifdef CONFIG_PROC_FS
create_proc_read_entry("sysvipc/shm", 0, 0, sysvipc_shm_read_proc, NULL);
+#endif
}
static inline int shm_checkid(struct shmid_kernel *s, int id)
@@ -605,9 +607,9 @@
shp->shm_nattch++;
shm_unlock(shmid);
- down(¤t->mm->mmap_sem);
+ down_write(¤t->mm->mmap_sem);
user_addr = (void *) do_mmap (file, addr, file->f_dentry->d_inode->i_size, prot, flags, 0);
- up(¤t->mm->mmap_sem);
+ up_write(¤t->mm->mmap_sem);
down (&shm_ids.sem);
if(!(shp = shm_lock(shmid)))
@@ -636,14 +638,14 @@
struct mm_struct *mm = current->mm;
struct vm_area_struct *shmd, *shmdnext;
- down(&mm->mmap_sem);
+ down_write(&mm->mmap_sem);
for (shmd = mm->mmap; shmd; shmd = shmdnext) {
shmdnext = shmd->vm_next;
if (shmd->vm_ops == &shm_vm_ops
&& shmd->vm_start - (shmd->vm_pgoff << PAGE_SHIFT) == (ulong) shmaddr)
do_munmap(mm, shmd->vm_start, shmd->vm_end - shmd->vm_start);
}
- up(&mm->mmap_sem);
+ up_write(&mm->mmap_sem);
return 0;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)