Got rid of two ToDo-items: instead of clearing the PAGE_MODIFIED flag after having

written the page, we now do it before, so that it cannot lose any changed data
anymore; it doesn't matter if the page is written to while writing it back, the
worst thing that can happen is that we write the same page twice. Also, we don't
rely on the PAGE_MODIFIED bit anymore, we now check all mappings of that page
to find all modified pages, no matter how far the (currently disabled) page
daemon had come.
Also, destroying an area will now result in writing back changed pages - this
is only really important for memory mapped files, though, and should probably
be avoided for other vm_store types.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15597 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2005-12-19 23:01:11 +00:00
parent 8d7b8e8ce7
commit 9d845483cf
3 changed files with 48 additions and 29 deletions
+4 -4
View File
@@ -91,11 +91,11 @@ typedef struct vm_area {
off_t cache_offset;
struct vm_address_space *aspace;
struct vm_area *aspace_next;
struct vm_area *aspace_next;
struct vm_virtual_map *map;
struct vm_area *cache_next;
struct vm_area *cache_prev;
struct vm_area *hash_next;
struct vm_area *cache_next;
struct vm_area *cache_prev;
struct vm_area *hash_next;
} vm_area;
// virtual map (1 per address space)