ipc/shm: use the vma iterator for munmap calls
Pass through the vma iterator to do_vmi_munmap() to handle the iterator state internally Link: https://lkml.kernel.org/r/20230120162650.984577-16-Liam.Howlett@oracle.com Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
f2ebfe43ba
commit
d60beb1f69
11
ipc/shm.c
11
ipc/shm.c
@ -1786,8 +1786,8 @@ long ksys_shmdt(char __user *shmaddr)
|
|||||||
*/
|
*/
|
||||||
file = vma->vm_file;
|
file = vma->vm_file;
|
||||||
size = i_size_read(file_inode(vma->vm_file));
|
size = i_size_read(file_inode(vma->vm_file));
|
||||||
do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL);
|
do_vmi_munmap(&vmi, mm, vma->vm_start,
|
||||||
mas_pause(&vmi.mas);
|
vma->vm_end - vma->vm_start, NULL, false);
|
||||||
/*
|
/*
|
||||||
* We discovered the size of the shm segment, so
|
* We discovered the size of the shm segment, so
|
||||||
* break out of here and fall through to the next
|
* break out of here and fall through to the next
|
||||||
@ -1810,10 +1810,9 @@ long ksys_shmdt(char __user *shmaddr)
|
|||||||
/* finding a matching vma now does not alter retval */
|
/* finding a matching vma now does not alter retval */
|
||||||
if ((vma->vm_ops == &shm_vm_ops) &&
|
if ((vma->vm_ops == &shm_vm_ops) &&
|
||||||
((vma->vm_start - addr)/PAGE_SIZE == vma->vm_pgoff) &&
|
((vma->vm_start - addr)/PAGE_SIZE == vma->vm_pgoff) &&
|
||||||
(vma->vm_file == file)) {
|
(vma->vm_file == file))
|
||||||
do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL);
|
do_vmi_munmap(&vmi, mm, vma->vm_start,
|
||||||
mas_pause(&vmi.mas);
|
vma->vm_end - vma->vm_start, NULL, false);
|
||||||
}
|
|
||||||
|
|
||||||
vma = vma_next(&vmi);
|
vma = vma_next(&vmi);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user