Commit 496a8e68 authored by Namjae Jeon's avatar Namjae Jeon Committed by Linus Torvalds

msync: fix incorrect fstart calculation

Fix a regression caused by 7fc34a62 ("mm/msync.c: sync only the
requested range in msync()").

xfstests generic/075 fail occured on ext4 data=journal mode because the
intended range was not syncing due to wrong fstart calculation.
Signed-off-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: default avatarAshish Sangwan <a.sangwan@samsung.com>
Reported-by: default avatarEric Whitney <enwlinux@gmail.com>
Tested-by: default avatarEric Whitney <enwlinux@gmail.com>
Acked-by: default avatarMatthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: default avatarLukas Czerner <lczerner@redhat.com>
Tested-by: default avatarLukas Czerner <lczerner@redhat.com>
Reviewed-by: default avatarTheodore Ts'o <tytso@mit.edu>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 2e32baea
...@@ -78,7 +78,8 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags) ...@@ -78,7 +78,8 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags)
goto out_unlock; goto out_unlock;
} }
file = vma->vm_file; file = vma->vm_file;
fstart = start + ((loff_t)vma->vm_pgoff << PAGE_SHIFT); fstart = (start - vma->vm_start) +
((loff_t)vma->vm_pgoff << PAGE_SHIFT);
fend = fstart + (min(end, vma->vm_end) - start) - 1; fend = fstart + (min(end, vma->vm_end) - start) - 1;
start = vma->vm_end; start = vma->vm_end;
if ((flags & MS_SYNC) && file && if ((flags & MS_SYNC) && file &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment