Lines Matching refs:vma
68 static void shm_open(struct vm_area_struct *vma);
69 static void shm_close(struct vm_area_struct *vma);
190 static int __shm_open(struct vm_area_struct *vma) in __shm_open() argument
192 struct file *file = vma->vm_file; in __shm_open()
209 static void shm_open(struct vm_area_struct *vma) in shm_open() argument
211 int err = __shm_open(vma); in shm_open()
269 static void shm_close(struct vm_area_struct *vma) in shm_close() argument
271 struct file *file = vma->vm_file; in shm_close()
376 static int shm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) in shm_fault() argument
378 struct file *file = vma->vm_file; in shm_fault()
381 return sfd->vm_ops->fault(vma, vmf); in shm_fault()
385 static int shm_set_policy(struct vm_area_struct *vma, struct mempolicy *new) in shm_set_policy() argument
387 struct file *file = vma->vm_file; in shm_set_policy()
391 err = sfd->vm_ops->set_policy(vma, new); in shm_set_policy()
395 static struct mempolicy *shm_get_policy(struct vm_area_struct *vma, in shm_get_policy() argument
398 struct file *file = vma->vm_file; in shm_get_policy()
403 pol = sfd->vm_ops->get_policy(vma, addr); in shm_get_policy()
404 else if (vma->vm_policy) in shm_get_policy()
405 pol = vma->vm_policy; in shm_get_policy()
411 static int shm_mmap(struct file *file, struct vm_area_struct *vma) in shm_mmap() argument
420 ret =__shm_open(vma); in shm_mmap()
424 ret = sfd->file->f_op->mmap(sfd->file, vma); in shm_mmap()
426 shm_close(vma); in shm_mmap()
429 sfd->vm_ops = vma->vm_ops; in shm_mmap()
433 vma->vm_ops = &shm_vm_ops; in shm_mmap()
1262 struct vm_area_struct *vma; in SYSCALL_DEFINE1() local
1297 vma = find_vma(mm, addr); in SYSCALL_DEFINE1()
1300 while (vma) { in SYSCALL_DEFINE1()
1301 next = vma->vm_next; in SYSCALL_DEFINE1()
1308 if ((vma->vm_ops == &shm_vm_ops) && in SYSCALL_DEFINE1()
1309 (vma->vm_start - addr)/PAGE_SIZE == vma->vm_pgoff) { in SYSCALL_DEFINE1()
1317 file = vma->vm_file; in SYSCALL_DEFINE1()
1318 size = i_size_read(file_inode(vma->vm_file)); in SYSCALL_DEFINE1()
1319 do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start); in SYSCALL_DEFINE1()
1327 vma = next; in SYSCALL_DEFINE1()
1330 vma = next; in SYSCALL_DEFINE1()
1339 while (vma && (loff_t)(vma->vm_end - addr) <= size) { in SYSCALL_DEFINE1()
1340 next = vma->vm_next; in SYSCALL_DEFINE1()
1343 if ((vma->vm_ops == &shm_vm_ops) && in SYSCALL_DEFINE1()
1344 ((vma->vm_start - addr)/PAGE_SIZE == vma->vm_pgoff) && in SYSCALL_DEFINE1()
1345 (vma->vm_file == file)) in SYSCALL_DEFINE1()
1346 do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start); in SYSCALL_DEFINE1()
1347 vma = next; in SYSCALL_DEFINE1()
1353 if (vma && vma->vm_start == addr && vma->vm_ops == &shm_vm_ops) { in SYSCALL_DEFINE1()
1354 do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start); in SYSCALL_DEFINE1()