aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2009-11-24 08:45:24 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2009-12-11 06:30:23 -0500
commit935874141df839c706cd6cdc438e85eb69d1525e (patch)
treeb55c66ff76e35332f8565bf20efd076d9dccf0cb
parent097eed103862f9c6a97f2e415e21d1134017b135 (diff)
fix pgoff in "have to relocate" case of mremap()
Acked-by: Hugh Dickins <hugh.dickins@tiscali.co.uk> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r--mm/mremap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/mremap.c b/mm/mremap.c
index 84efffb2d2c4..bbbbbf507ff3 100644
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -495,7 +495,9 @@ unsigned long do_mremap(unsigned long addr,
495 map_flags |= MAP_SHARED; 495 map_flags |= MAP_SHARED;
496 496
497 new_addr = get_unmapped_area(vma->vm_file, 0, new_len, 497 new_addr = get_unmapped_area(vma->vm_file, 0, new_len,
498 vma->vm_pgoff, map_flags); 498 vma->vm_pgoff +
499 ((addr - vma->vm_start) >> PAGE_SHIFT),
500 map_flags);
499 if (new_addr & ~PAGE_MASK) { 501 if (new_addr & ~PAGE_MASK) {
500 ret = new_addr; 502 ret = new_addr;
501 goto out; 503 goto out;