:Yes - but FreeBSD then calls vm_object_page_remove to remove the pages 
:from the vnode object. (vm_object_sync for 5.x or vm_map_clean for 4.x )
:
:Mhhh .. 4.X  removes the pages without flushing if the file is not write 
:mapped.
:This means that anyone with read access can screw up a file.
:( For example periodically throwing away pages from /var/log/wtmp ...)
:5.x looks better - but there is a race condition that can cause the same thing.
:I think for msync() the vm_object_page_remove() function should be called with 
:clean_only set to TRUE to avoid throwing away valid changes.
:( I will send-pr tomorrow )
:
:       Stephan

    I don't quite see that.  Could you point out the code in question?
    (And, of course, a test program would tell us for sure whether that
    hole exists).  There are two different things being removed... the
    page table entries are removed from pmap via the vm_map for the process,
    and the pages in the underlying object are being cleaned.

    Just removing pages from a pmap will not destroy the underlying pages.

    (I'm not saying that you are wrong, just that we need more information
    to figure out what is actually happening here).

                                        -Matt
                                        Matthew Dillon 
                                        <[EMAIL PROTECTED]>
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to