Introduced vm_page::modified flag, which is used by vm_unmap_page[s]() to

preserve the dirty flag of the mapping without having to potentially move the
page to the modified queue. This lifts the (ignored) requirement that the
pages to be unmapped must not be busy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35023 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2010-01-12 01:22:09 +00:00
parent b3a6a13635
commit 829f302836
1 changed files with 3 additions and 0 deletions

View File

@ -413,6 +413,7 @@ dump_page(int argc, char **argv)
kprintf("wired_count: %d\n", page->wired_count);
kprintf("usage_count: %d\n", page->usage_count);
kprintf("busy_writing: %d\n", page->busy_writing);
kprintf("modified: %d\n", page->modified);
#if DEBUG_PAGE_QUEUE
kprintf("queue: %p\n", page->queue);
#endif
@ -2168,6 +2169,7 @@ vm_page_allocate_page(int pageState)
int oldPageState = page->state;
page->state = PAGE_STATE_BUSY;
page->usage_count = 2;
page->modified = 0;
locker.Unlock();
@ -2204,6 +2206,7 @@ allocate_page_run(page_num_t start, page_num_t length, int pageState,
page.state = PAGE_STATE_BUSY;
page.usage_count = 1;
page.modified = 0;
}
freeClearQueueLocker.Unlock();