Red Hat Bugzilla – Bug 179911
mmaping over NFS: msync(MS_INVALIDATE) does not do anything.
Last modified: 2007-11-30 17:07:30 EST
*** Bug 137330 has been marked as a duplicate of this bug. ***
If I'm not wrong, it shouldn't (at least for NFSv3). In fact the case is,
currently MS_INVALIDATE is of no use to us because of the way Linux implements
shared mmap - processes mmapping a common file simply share the memory pages.
So, rightly so, it turns out that MS_INVALIDATE is effectively an implicit
no-op, and currently there are no takers.
SuSv3 standard says "When MS_INVALIDATE is specified, msync() shall invalidate
all cached copies of mapped data that are inconsistent with the permanent
storage locations such that subsequent references shall obtain data that was
consistent with the permanent storage locations sometime between the call to
msync() and the first subsequent memory reference to the data."
This makes sense for a network file system (like NFS!) that all the client
caches (mmappings) of the data (file) be invalidated. But, being stateless, NFS
server doesn't care about which clients uses what files and how. So IMO, for NFS
MS_INVALIDATE is again a no-op.
Development Management has reviewed and declined this request. You may appeal
this decision by reopening this request.