Skip to contentSkip to conversation

2.2.19(xx) file unmapping on abort

DISCUSSION Rakesh Tiwari 2 participants 2 messages Mar 22, 2002

lore
Share & tools
lore
#0 lore raw

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 :-)

#1 lore raw
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().