2.2.19(xx) file unmapping on abort
Relevant code -
../src/linux/mm/filemap.c
static void filemap_unmap(struct vm_area_struct *vma, unsigned long start, size_t len)
{
filemap_sync(vma, start, len, MS_ASYNC);
}Question -
Does this imply that every time a process terminates abonormally, all the dirty pages related to that mapping are flushed to the disk, even if that was not intended ? Why can not it be simply this ? -
static void filemap_unmap(struct vm_area_struct *vma, unsigned long start, size_t len)
{
filemap_sync(vma, start, len, MS_INVALIDATE);
}I call msync() at various points in the program where data in the pages is known to be in good condition. At the abnormal program termination, I am not really sure if data in pages is valid or not.....
Thank you.
Rakesh :-)
Quoted 4 lines · Rakesh Tiwari
I call
msync()at various points in the program where data in the pages is known to be in good condition. At the abnormal program termination, I am not really sure if data in pages is valid or not.....
If you have a shared mapping it can be written to disk at any moment, so you can't rely on that happening only at the moment of msync().