On 05/13/2014 09:31 AM, Jeff Moyer wrote: > Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> writes: > >> On Wed, 23 Apr 2014 07:11:15 -0700 Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: >> >>> On Thu, Mar 27, 2014 at 07:02:41PM -0400, Matthew Wilcox wrote: >>>> [untested. posted because it keeps coming up at lsfmm/collab] >>>> >>>> msync() currently syncs more than POSIX requires or BSD or Solaris >>>> implement. It is supposed to be equivalent to fdatasync(), not fsync(), >>>> and it is only supposed to sync the portion of the file that overlaps >>>> the range passed to msync. >>>> >>>> If the VMA is non-linear, fall back to syncing the entire file, but we >>>> still optimise to only fdatasync() the entire file, not the full fsync(). >>>> >>>> Signed-off-by: Matthew Wilcox <matthew.r.wilcox@xxxxxxxxx> >>> >>> Looks good, >>> >>> Reviewed-by: Christoph Hellwig <hch@xxxxxx> >> >> I worry that if there are people who are relying on the current >> behaviour (knowingly or not!) then this patch will put their data at >> risk and nobody will ever know. Until that data gets lost, that is. >> At some level of cautiousness, this is one of those things we can never >> fix. >> >> I suppose we could add an msync2() syscall with the new behaviour so >> people can migrate over. That would be very cheap to do. >> >> It's hard to know what's the right thing to do here. > > FWIW, I think we should apply the patch. Anyone using the API properly > will not get the desired result, and it could have a negative impact on > performance. The man page is very explicit on what you should expect, > here. Anyone relying on undocumented behavior gets to keep both pieces > when it breaks. That said, I do understand your viewpoint, Andrew, > especially since it's so hard to get people to sync their data at all, > much less correctly. > > Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx> Maybe we can talk someone with all of linux in a repository to grep for msync calls that even specify a range at all? Eric did this for 64 bit inodes a few years ago, and it wouldn't hurt to have a little data on how common this is. I think for msync the list will be much shorter and easier to audit. -chris -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>