mutex_lock(&mapping->i_mmap_mutex);
__remove_shared_vm_struct(vma, file, mapping);
mutex_unlock(&mapping->i_mmap_mutex);
+ uprobe_munmap(vma);
}
}
if (file) {
mapping = file->f_mapping;
- if (!(vma->vm_flags & VM_NONLINEAR))
+ if (!(vma->vm_flags & VM_NONLINEAR)) {
root = &mapping->i_mmap;
+ uprobe_munmap(vma);
+
+ if (adjust_next)
+ uprobe_munmap(next);
+ }
+
mutex_lock(&mapping->i_mmap_mutex);
if (insert) {
/*
if (remove_next) {
if (file) {
+ uprobe_munmap(next);
fput(file);
if (next->vm_flags & VM_EXECUTABLE)
removed_exe_file_vma(mm);