.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH MSYNC 2 2008-04-22 "Linux" "Linux Programmer's Manual"
+.TH MSYNC 2 2014-04-20 "Linux" "Linux Programmer's Manual"
.SH NAME
msync \- synchronize a file with a memory map
.SH SYNOPSIS
flushes changes made to the in-core copy of a file that was mapped
into memory using
.BR mmap (2)
-back to disk.
+back to the filesystem.
Without use of this call
there is no guarantee that changes are written back before
.BR munmap (2)
.B EFAULT
instead of
.BR ENOMEM .
-In Linux 2.4.19 this was changed to the POSIX value
+In Linux 2.4.19, this was changed to the POSIX value
.BR ENOMEM .
.SH AVAILABILITY
On POSIX systems on which
.\" POSIX.1-2001: It shall be defined to -1 or 0 or 200112L.
.\" -1: unavailable, 0: ask using sysconf().
.\" glibc defines them to 1.
+.SH NOTES
+According to POSIX, either
+.BR MS_SYNC
+or
+.BR MS_ASYNC
+must be specified in
+.IR flags ,
+and indeed failure to include one of these flags will cause
+.BR msync ()
+to fail on some systems.
+However, Linux permits a call to
+.BR msync ()
+that specifies neither of these flags,
+with semantics that are (currently) equivalent to specifying
+.BR MS_ASYNC .
+(Since Linux 2.6.19,
+.\" commit 204ec841fbea3e5138168edbc3a76d46747cc987
+.BR MS_ASYNC
+is in fact a no-op, since the kernel properly tracks dirty
+pages and flushes them to storage as necessary.)
+Notwithstanding the Linux behavior,
+portable, future-proof applications should ensure that they specify either
+.BR MS_SYNC
+or
+.BR MS_ASYNC
+in
+.IR flags .
.SH SEE ALSO
.BR mmap (2)
B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.
.SH COLOPHON
-This page is part of release 3.64 of the Linux
+This page is part of release 3.68 of the Linux
.I man-pages
project.
A description of the project,
-and information about reporting bugs,
+information about reporting bugs,
+and the latest version of this page,
can be found at
\%http://www.kernel.org/doc/man\-pages/.