[haiku-commits] r34958 - haiku/trunk/src/system/kernel/vm
- From: ingo_weinhold@xxxxxx
- To: haiku-commits@xxxxxxxxxxxxx
- Date: Fri, 8 Jan 2010 21:39:08 +0100 (CET)
Author: bonefish
Date: 2010-01-08 21:39:08 +0100 (Fri, 08 Jan 2010)
New Revision: 34958
Changeset: http://dev.haiku-os.org/changeset/34958/haiku
Ticket: http://dev.haiku-os.org/ticket/5216
Modified:
haiku/trunk/src/system/kernel/vm/vm_page.cpp
Log:
Don't announce page access before being sure that the page isn't busy. Fixes
the erroneously trigger panic() in #5216.
Modified: haiku/trunk/src/system/kernel/vm/vm_page.cpp
===================================================================
--- haiku/trunk/src/system/kernel/vm/vm_page.cpp 2010-01-08 20:29:55 UTC
(rev 34957)
+++ haiku/trunk/src/system/kernel/vm/vm_page.cpp 2010-01-08 20:39:08 UTC
(rev 34958)
@@ -1659,17 +1659,16 @@
bool dequeuedPage = false;
if (page != NULL) {
- DEBUG_PAGE_ACCESS_START(page);
-
if (page->state == PAGE_STATE_MODIFIED) {
+ DEBUG_PAGE_ACCESS_START(page);
AutoLocker<VMPageQueue>
locker(sModifiedPageQueue);
sModifiedPageQueue.Remove(page);
dequeuedPage = true;
} else if (page->state == PAGE_STATE_BUSY
|| !vm_test_map_modification(page)) {
- DEBUG_PAGE_ACCESS_END(page);
page = NULL;
- }
+ } else
+ DEBUG_PAGE_ACCESS_START(page);
}
PageWriteWrapper* wrapper = NULL;
Other related posts:
- » [haiku-commits] r34958 - haiku/trunk/src/system/kernel/vm - ingo_weinhold