Commit 8a459e44ad837018ea5c34a9efe8eb4ad27ded26

Authored by Oleg Nesterov
Committed by Linus Torvalds
1 parent c0b49b0d16

sys_remap_file_pages: fix ->vm_file accounting

Fix ->vm_file accounting, mmap_region() may do do_munmap().

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 1 changed file with 4 additions and 1 deletions Side-by-side Diff

... ... @@ -190,10 +190,13 @@
190 190 */
191 191 if (mapping_cap_account_dirty(mapping)) {
192 192 unsigned long addr;
  193 + struct file *file = vma->vm_file;
193 194  
194 195 flags &= MAP_NONBLOCK;
195   - addr = mmap_region(vma->vm_file, start, size,
  196 + get_file(file);
  197 + addr = mmap_region(file, start, size,
196 198 flags, vma->vm_flags, pgoff, 1);
  199 + fput(file);
197 200 if (IS_ERR_VALUE(addr)) {
198 201 err = addr;
199 202 } else {