msync: fix incorrect fstart calculation
Fix a regression caused by 7fc34a62ca ("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: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Ashish Sangwan <a.sangwan@samsung.com>
Reported-by: Eric Whitney <enwlinux@gmail.com>
Tested-by: Eric Whitney <enwlinux@gmail.com>
Acked-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Reviewed-by: Lukas Czerner <lczerner@redhat.com>
Tested-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
			
			
This commit is contained in:
		
							parent
							
								
									2e32baea46
								
							
						
					
					
						commit
						496a8e6865
					
				| @ -78,7 +78,8 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags) | ||||
| 			goto out_unlock; | ||||
| 		} | ||||
| 		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; | ||||
| 		start = vma->vm_end; | ||||
| 		if ((flags & MS_SYNC) && file && | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user